Java DatagramSocket - BindException

  1. cl3mens

    cl3mens Thread StarterMacUser Mitglied

    Mitglied seit:
    14.03.2005
    Beiträge:
    43
    Zustimmungen:
    1
    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 );
            }
        }    
    }
    
     
    cl3mens, 02.01.2006
  2. autoexec.bat

    autoexec.batMacUser Mitglied

    Mitglied seit:
    21.01.2005
    Beiträge:
    2.113
    Zustimmungen:
    20
    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)
     
    autoexec.bat, 02.01.2006
  3. cl3mens

    cl3mens Thread StarterMacUser Mitglied

    Mitglied seit:
    14.03.2005
    Beiträge:
    43
    Zustimmungen:
    1
    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.
     
    cl3mens, 02.01.2006
  4. cl3mens

    cl3mens Thread StarterMacUser Mitglied

    Mitglied seit:
    14.03.2005
    Beiträge:
    43
    Zustimmungen:
    1
    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
     
    cl3mens, 07.01.2006
  5. minilux

    miniluxMacUser Mitglied

    Mitglied seit:
    19.11.2003
    Beiträge:
    13.976
    Zustimmungen:
    2.726
    was willsten damit machen? im Hintergrund als logger mitlaufen lassen??
    dann einfach als root starten das Progrämmchen
     
    minilux, 07.01.2006
  6. cl3mens

    cl3mens Thread StarterMacUser Mitglied

    Mitglied seit:
    14.03.2005
    Beiträge:
    43
    Zustimmungen:
    1
    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
     
    cl3mens, 07.01.2006
Die Seite wird geladen...
Ähnliche Themen - Java DatagramSocket BindException
  1. anotheryou
    Antworten:
    1
    Aufrufe:
    144
    Apfeleis
    24.06.2017
  2. kurtmac
    Antworten:
    4
    Aufrufe:
    333
    kurtmac
    15.11.2016
  3. msdd79
    Antworten:
    5
    Aufrufe:
    669
  4. LuQasZ
    Antworten:
    15
    Aufrufe:
    1.228