2017-11-27 17 views
0

Javaクライアントソケットを正しく閉じるにはどうすればいいですか?Javaクライアントソケットを正しく閉じる方法は?

  • socket.getOutputStreamを閉じる必要がありますか?
  • socket.getInputStreamを閉じる必要がありますか?
  • socket.shutdownInput()を呼び出す必要がありますか?
  • socket.shutdownOutput()を呼び出す必要がありますか?

socket.close()の前(呼び出し後)のシーケンスは何ですか?

答えて

1

ソケットのドキュメントの状態:

はこのソケットを閉じるも、ソケットの入力ストリームとOutputStreamを閉じます。

入力/出力をシャットダウンする必要はありません。ただし、ソケットを「半分」閉じることができます。データの送信を続けたいが、それ以上受信しないことを示したい場合は、

です。私は質問をする前にデバッグを試みたが、最初から最後までsocket.close()のすべてのステップを経て、流れだったが、そのどこかに気付かなかった、不思議

... 
finally { 
    if (socket != null) 
     socket.close(); 
} 
+0

:それは次の操作を実行するために、完全に罰金です閉鎖。慎重に見ることができない...? – Andreyua

+0

ストリームがネイティブのC++呼び出しによって閉じられた可能性があります... Hmm – Andreyua

関連する問題