2015-06-15 134 views
0

你好朋友你好嗎? 我想發送一個udp消息,我在wireshark尋找它,我似乎不會發現它可以告訴我你是否有問題嗎?或找到我的解決方案? 謝謝!UDP Java不會發送消息

DatagramSocket socket = new DatagramSocket(5500); 
    InetAddress address=InetAddress.getByName("127.0.0.1"); 
    String message="start server"; 
     byte[] data=message.getBytes(); 
     DatagramPacket sendPacket = new DatagramPacket(data,data.length, address, 5400); 
     try { 
      socket.send(sendPacket); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+0

您的客戶端代碼適合我。當我將它指向一個[簡單示例數據報服務器](https://docs.oracle.com/javase/tutorial/networking/datagrams/clientServer.html)時,我可以運行你的代碼並得到一個很好的迴應。有些東西可能會出錯,但這不是您的客戶端代碼。 – azurefrog

回答

0

如何配置Wireshark?是否存在回送接口?如果沒有,你將無法跟蹤發送到本地主機(127.0.0.1)的數據包。嘗試將它們發送到其他IP,例如192.168.1.100或其他。如果您只想用wireshark跟蹤數據包,不關心它是否存在。

https://wiki.wireshark.org/CaptureSetup/Loopback

如果你是一個Windows系統上嘗試RawCap數據包嗅探器http://www.netresec.com/?page=Blog&month=2011-04&post=RawCap-sniffer-for-Windows-released

0

我覺得你的代碼就可以了。數據包正在發送(你可以嘗試使用Java監聽它們)

也許Wireshark不適用於本地主機,我認爲它可能不適用於開箱即用。例如,在Windows上,它似乎不起作用,如其描述documentation

0

您是在Windows還是Linux上運行?在Windows中,您不能使用Wireshark,實際上使用WinPcap在回送接口中嗅探數據包。 https://wiki.wireshark.org/CaptureSetup/Loopback

嘗試發送到其他IP地址,即使它無法訪問。您至少應該看到一條消息,然後您可能會收到無法到達目的地的ICMP消息。

代碼看起來沒問題。

其次,你有UDP服務器監聽端口5400嗎?看看你是否收到了一些東西。