大家好,我有一个正在接收数据包并且工作正常的多播套接字。
我遇到了一个问题,当我的计算机从睡眠中唤醒时,多播套接字不起作用。不断超时:
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 的数量,然后重新初始化我的多播套接字?