2015-09-07 62 views
0

我已閱讀關於廣播的Q & A,我得到了一般想法。但是,當玩我的Java代碼時,我很困惑。無法捕獲我廣播到255.255.255.255的UDP包,但可以看到其他的

我的IP地址是192.168.8.102。當我廣播到192.168.8.255時,我可以收到來自我自己的包,並將它在wireshark上捕獲。但是當我廣播到255.255.255.255時,wireshark似乎錯過了它,儘管我的代碼仍然收到它。當我運行其他人的應用時,wireshark捕獲它廣播的包到255.255.255.255。

任何解釋?非常感激!

PS。這裏是我的Java代碼部分:

DatagramSocket senderSocket = new DatagramSocket(null); 
senderSocket.setReuseAddress(true); 
senderSocket.setBroadcast(true); 
senderSocket.bind(new InetSocketAddress(2000)); 
InetAddress address = InetAddress.getByName("255.255.255.255"); 
byte[] SendBuffer = contentSent.getBytes(); 

senderPacket = new DatagramPacket(SendBuffer, SendBuffer.length, address, 2000); 
senderSocket.send(senderPacket); 
+0

廣播到255:255.255.255已被棄用約25年。 – EJP

回答

0

如果你的插座沒有被綁定到特定的接口,數據包發送到255.255.255.255將默認接口上發送出去。如果那不是Wireshark正在監聽的那個,這就解釋了爲什麼它沒有看到它,但是你的代碼確實如此。

如果你的套接字被綁定到一個特定的接口,這保證了在那個套接字上的發送在該接口上發送。

由於EJP在評論中提到,不推薦廣播到255.255.255.255,部分原因是我提到的限制。你最好使用有關鏈接的廣播地址,即192.168.8.255。

相關問題