を閉じると、誰かがJavaソケットに次の動作を説明することができます:動作時に出力ストリーム
一般的な考えはこれです:
- オープンソケット、取得するI/Oストリーム。
- 書き込み要求は、ストリーム
- 閉じるソケット閉じるストリーム
- 読む応答を、アウト閉じます。
ここに私の質問/問題です。
出力にPrintWriter
を使用し、それを閉じると、ソケット全体が閉じられ、後続の読み取り操作が悲惨に失敗します。
代わりに、ソケットのshutdownOutput()
メソッドを直接使用すると、ソケットを有効にしたまま出力ストリームチャネルを正しく閉じます。
PrintWriter
オブジェクトを閉じると、ソケット全体が閉じられるのはなぜですか? PrintWriter
のclose()
方法は、階層を遡っと同様SocketOutputStream
のclose()
メソッドを呼び出して呼び出しているため
閉じる前にフラッシュする必要があるかもしれません。 –
問題が解決しない場合は、プリントライターを閉じる前に、接続で.flush()を使ってフラッシュしてみましたか? – vcetinick