嗨,大家好我有一個接收數據包,並且做工精細的多播插座將無法正常工作。播套接字 - 當計算機從睡眠中醒來
我雖然在那裏當我的電腦從睡眠中醒來的多播套接字不工作的問題。不斷超時:
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