PrintWriter(out.write(String str)) を介してテキスト データを送信するソケット プログラムがあり、反対側では BufferedReader(in.readLine()) がこれを受信しています。
クライアントの1つが接続を切断した場合、ある種の「タイムアウト」でプログラムを保護したいのですが、テストし、作業中にクライアントがオフになると、サーバーはまだデータを送信しており、中断もソケットの閉鎖もありません。
クライアントの場合も同様です。接続を切断して、「サーバーが機能していません」などの情報を表示したい。どうすればこれを処理できますか?
// Server
out = new PrintWriter( sock.getOutputStream());
while( true ) {
this.out.write("Hello");
this.out.flush();
}
// Client
in = new BufferedReader( new InputStreamReader( sock.getInputStream()));
while (true) {
in.readLine();
}