0
I持ってキープアライブServerSocketのための次のコードは、JDK 1.8、Windows7の:のJava ServerSocketを結合したが聞いていない
serverSocket = new ServerSocket();
serverSocket.setReuseAddress(true);
serverSocket.bind(new InetSocketAddress(port)); // <-- port is 19876
System.out.println("Server bound on " + port + " " + serverSocket);
問題が時々ある私はこれを実行すると、それはnetstatコマンドで聴いて現れ、時にはそれをしません。例外がないので、実際にバインドされると期待していますが、ランダムです。 netstatのわずかのprintln後
正しい動作:
TCP 0.0.0.0:19876 0.0.0.0:0 LISTENING 7944
TCP [::]:19876 [::]:0 LISTENING 7944
Netstatのわずかのprintln後:両方の場合において
C:\Users\tmplr>netstat -ano | find "198"
C:\Users\tmplr>netstat -ano | find "198"
そこには例外はありませんとのprintlnが同じ生成:
Server bound on 19876 ServerSocket[addr=0.0.0.0/0.0.0.0,localport=19876]
ここに何が間違っているのか、どうすれば問題をデバッグできますか?
を、なぜそれが受け入れを呼び出すことなく、第1の場合には聞いていますか?私の理解では、 'listen'はすでに' bind'を呼び出すことに含まれています。 – Templar