問題があります。
私のクライアントは特定の時間サーバーからリッスンする必要があり、その時間内にサーバーからの応答を受信しない場合は、接続を閉じる必要があります。
クライアントには2つのスレッドがあり、1つは時間の経過後にブール変数をfalseに更新し、もう1つのスレッドはサーバーからのメッセージとタイマーをチェックします。
私のコードは次のようなものです:
while(true){
if(l=is.readLine().equals(msg))
{
// do processing
break;
}
if(timer)
break;
}
そのため、while ループは msg と timer を継続的にチェックします。問題は is.readline() が呼び出しをブロックしており、サーバーからのメッセージを無期限に待っていることです。
どうすればいいですか?
私は試した
if(l=is.readLine()!=null and l.equals(msg))
しかし、うまくいきませんでした。