接続されたソケットからストリームを読み取るソケットサーバーのコードを以下に示します。
try
{
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
int count = 10;
while(count>0)
{
String msg = in.readObject().toString(); //Stucks here if this client is lost.
System.out.println("Client Says : "+msg);
count--;
}
in.close();
client.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
そして、このサーバーに接続し、毎秒10回文字列を送信し、サーバーがソケットから10回読み取り、メッセージを出力するクライアントプログラムを持っていますが、その間にクライアントプログラムを強制終了すると、サーバーがフリーズします例外や何かをスローする代わりに、その間に。
この凍結状態をどのように検出できますか? このループを無限に繰り返し、接続がアクティブで安定するまでクライアントが送信するものを出力しますか?