Java nicht festen Port festlegen (sockets)?

... komplette Frage anzeigen

4 Antworten

Er möchte ein Programm schreiben das sich einen freien port sucht. Ich empfehledir ne while schleife
z.b.
int port = 0; while (true){int p = random.nextint(55555) und dann mit nem socket drauf connecten. Wenn ne unknownhost exception kommt port = p, dann break; schon haste nen dynamischen port.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von thiesyy
16.07.2016, 11:46

Nochmal Genau:
int port = 0;
while(true){
int p = new Random().nextInt(555);

try{

Socket s = new Socket(p);

s.connect();

}catch(UnknownhostException e){

port = p;
break;

}

0

Nimm doch eine Properties-Datei mit folgendem Inhalt:

port=12345

Die kannst du dann mit java.util.Properties.load() ganz bequem einlesen.

Geht sogar als XML, wenn du auf Overkill stehst. :)

Siehe:

http://www.gutefrage.net/frage/java-nicht-festen-port-festlegen-sockets

Viel Spaß! :)

Antwort bewerten Vielen Dank für Deine Bewertung

Versteh die Frage nicht ganz. Ein Server muss ja einen definierten Port haben - also zumindest sollte dem Administrator des Servers der Port bekannt gegeben werden und er sollte auch definierbar sein.

Und beim Client wird der LocalPort sowieso dynamisch ausgewählt, den RemotePort gibt wiederum der Server vor.

Antwort bewerten Vielen Dank für Deine Bewertung

Einfach einen Fenster mit Portabfrage öffnen oder eine Config anlegen und dann daraus den Port lesen.
Was ist daran jetzt so schwer?

Antwort bewerten Vielen Dank für Deine Bewertung