私が使う
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
......
output.println(message);
......
println 関数は戻り値がないため、例外も発生しません。切断が切断されたことをどのように知ることができますか?
ありがとう
私が使う
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
......
output.println(message);
......
println 関数は戻り値がないため、例外も発生しません。切断が切断されたことをどのように知ることができますか?
ありがとう
ここを参照してください。http://download.oracle.com/javase/6/docs/api/java/net/Socket.html
boolean isClosed() 、ソケットのクローズ状態を返します。
boolean isConnected(), ソケットの接続状態を返します。
PrintWriter.checkError()
エラーが発生したかどうかを呼び出すと、通知されます。どのエラーが発生したかは具体的にわかりませんが、checkError が true を返す場合は、ソケットが閉じられているか壊れていることが最も可能性の高い原因であると推測できます。
入力ストリームを取得したソケットへの参照を保持している場合は、ソケットのステータスをテストできます。
最後に、ストリームが「失敗」した時期と理由を本当に知りたい場合は、書き込みメソッド (など)OutputStream
でキャッチIOException
されたラッパーを作成し、未チェックの例外でラップして再スローできます。