嗨,大家好我有一个接收数据包,并且做工精细的多播插座将无法正常工作。播套接字 - 当计算机从睡眠中醒来
我虽然在那里当我的电脑从睡眠中醒来的多播套接字不工作的问题。不断超时:
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。
我需要做的是这样算SocketTimeoutExceptions的数量,如果我得到10然后重新初始化我的播套接字?
这不是Java问题。您是否打算从睡眠中唤醒网络接口(电源管理网络设备)?当WOL设备正在睡觉时,它变为被动,听不到任何东西。如果启用了Magic Packet功能,则需要发送特殊的魔法数据包才能将其唤醒。你需要Jpcap来做这个低级网络(或者有其他的Java解决方案)。关于它的更多信息,请点击http://www.activexperts.com/activsocket/tutorials/wol/如果您不喜欢这种WOL功能,只需关闭网络设备即可,以便设备在电脑休眠时仍能工作。 – 2012-08-14 02:18:48
好了,还有其他的Java解决方案(不使用JPCAP)发送魔术包以唤醒LAN设备http://www.jibble.org/wake-on-lan/ – 2012-08-14 02:24:36
不断抛出什么异常?从哪行代码? – EJP 2012-08-14 22:55:52