Frage : Java, das ServerSocket bindet

Der Code genommen von einem größeren Stück des Codes. Auf meinem System ausgibt er das folgende de:
Server, das auf 0.0.0.0/0.0.0.0 hört: zu 4001

That IP address offensichtlich ist nicht, was ich den Bediener hören wünsche. So wie binde ich das ServerSocket an die rechte Adresse? Spitzen zu den nützlichen relevanten Tutorien oder zu den Beispielen sind valuated.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
private ServerSocket serverSocket = Null;
das private Boolesche Hören = ausrichten en;	

Versuch {
	serverSocket = neues ServerSocket (Hafen);
} Fang (IOException e) {
	System.out.println („konnten nicht auf Hafen hören: “ + Hafen);
	e.printStackTrace ();
	System.exit (- 1);
}
System.out.println („Bediener, der auf“ + serverSocket.getInetAddress hört () + „: “ + Hafen);
Versuch {
	während (hörend) neues ClientServerThread (serverSocket.accept (), dieses) .start ();
	serverSocket.close ();
} Fang (IOException e) {
	System.out.println („konnten nicht auf Hafen hören: “ + Hafen);
	e.printStackTrace ();
	System.exit (- 1);
}

Antwort : Java, das ServerSocket bindet

Wenn ich es richtig verstehe, bedeutet 0.0.0.0, dass die Bedienereinfaßung nicht zu einem spezifischen interface/NIC gesprungen, aber annehmen Anschlüsse auf diesem Hafen auf allen Schnittstellen auf der Maschine.  Wenn Sie spezifizieren möchten, welcher zu verwenden Schnittstelle, Ihnen sie an diese Schnittstelle binden müssen.

Dieses kann mit dem dritten Erbauer getan werden, der ein InetAddress nimmt.  Sie können den leeren Erbauer auch benutzen, der Ihnen eine vollständig ungebundene Bedienereinfaßung gibt, dann einstellen die Anschlussnummer und die Schnittstellenadresse nd und dann benennen schließlich Bindung ().
Weitere Lösungen  
 
programming4us programming4us