Java DatagramSocket - BindException

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von cl3mens, 02.01.2006.

  1. cl3mens

    cl3mens Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    1
    MacUser seit:
    14.03.2005
    abend liebe macuser,

    will in java einen kleinen syslog-server basteln, der einfach alle udp-pakete port 514 ausgibt ...

    DatagramSocket socket = new DatagramSocket( 514 );

    liefert mir allerdings eine

    java.net.BindException: Permission denied

    schätz mal, das liegt am niedrigen port. kann ich das irgendwie umgehen?

    mein versuch:

    Code:
    import java.net.*;
    import java.io.*;
    
    public class SyslogServer implements Runnable {
        
     
        public SyslogServer() {
        }
        
        public void run( )
        {
           try
           {
                byte data[] = new byte[ 1024 ];
                DatagramPacket packet;
                DatagramSocket socket = new DatagramSocket( 514 );
           
           while ( true )
            {
                
                packet = new DatagramPacket( data, data.length );
                socket.receive( packet );
                
                System.out.println(packet.getData().toString());     
            }
           }
            catch ( Exception e ) 
            {
               System.out.println( e );
            }
        }    
    }
    
     
  2. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.130
    Zustimmungen:
    20
    MacUser seit:
    21.01.2005
    Das liegt daran, dass alle Ports < 1024 für das System reserviert sind und nur die Übrigen für einen normalen Benutzer nutzbar sind.

    Wenn du einen kleineren Port als 1024 nutzen willst brauchst du root-Rechte. (Stichwort: sudo)
     
  3. cl3mens

    cl3mens Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    1
    MacUser seit:
    14.03.2005
    wow, das ging ja schnell ...

    und wie mach ich das am besten? ... wuerd gern die run/build-funktionen im NetBeans nutzen ... soll ich mich im anmeldeschirm als root einloggen? ... immer mit der console kompilieren ist auch muehsam ...

    dankend.
     
  4. cl3mens

    cl3mens Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    1
    MacUser seit:
    14.03.2005
    keiner eine idee wie ich die ports < 1024 auch unter "normalen" usern nuetzen kann? SecurityManager? ich kenn mich jedenfalls nicht aus ...

    am rande der verzweiflung,
    clemens
     
  5. minilux

    minilux MacUser Mitglied

    Beiträge:
    14.738
    Medien:
    12
    Zustimmungen:
    2.152
    MacUser seit:
    19.11.2003
    was willsten damit machen? im Hintergrund als logger mitlaufen lassen??
    dann einfach als root starten das Progrämmchen
     
  6. cl3mens

    cl3mens Thread Starter MacUser Mitglied

    Beiträge:
    43
    Zustimmungen:
    1
    MacUser seit:
    14.03.2005
    is ein dialog mit dem die eintrudelnden syslogmessages eingelesen, formatiert, angezeigt und in mysql-db geschrieben werden ... ueber eine weboberflaeche lassen sich dann verschiedene sachen der einzelnen komponenten anschauen ... kleine spielerei fuer die schule ...

    arbeite mit netbeans ... und ist daweil ziemlich viel testerei ... wie fuer ich das "als root" aus? immer in der console mit sudo ausfuehren waer bissal muehsam ... g
     
Die Seite wird geladen...

Diese Seite empfehlen