こんにちはみんな私はパケットを受信していて正常に動作しているマルチキャストソケットを持っています。
コンピュータがスリープから復帰したときにマルチキャストソケットが機能しないという問題がありました。継続的にタイムアウトします:
MulticastSocket socket;
\\initialise socket..
while (running) {
try {
synchronized (syncRoot) {
socket.setSoTimeout(WAIT_TIME);
socket.receive(recv);
//Do Something...
}
} catch (SocketTimeoutException e) {
}
現在、コンピュータがWindowsのスリープモードから復帰すると、パケットが送信されていないときにソケット例外がスローされ続けます。変数socket.isBound()、socket.isClosed()、socket.isConnected()を確認しましたが、動作していたときから変更されていません。変数がありませんか?ソケットが機能している場合でも、isConnected()= false、isBound()= true、isClosed()=falseを返します。
10を取得した場合にSocketTimeoutExceptionsの数をカウントしてから、マルチキャストソケットを再初期化するなどの操作を行う必要がありますか?