UDP Java不发送消息

时间:2015-06-15 21:09:37

标签: java network-programming udp

你好朋友,你好吗? 我正在尝试发送一条udp消息,我在wireshark中寻找它,我似乎不会发现它可以告诉我这里有问题吗?还是找我解决方案? 谢谢!

 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();
        }

3 个答案:

答案 0 :(得分:0)

您如何配置Wireshark?是否存在环回接口?如果不是,您将无法跟踪发送到localhost(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

答案 1 :(得分:0)

我认为您的代码没问题。正在发送数据包(您也可以尝试使用Java来监听它们)

也许Wireshark不适用于localhost,我认为它可能无法开箱即用。例如,在Windows上它似乎不起作用,如documentation

中所述

答案 2 :(得分:0)

您在Windows或Linux上运行吗?在Windows中,您无法使用Wireshark(实际上使用WinPcap)在环回接口中嗅探数据包。 https://wiki.wireshark.org/CaptureSetup/Loopback

尝试发送到其他IP地址,即使无法访问。您应该至少看到一条消息,然后您可能会收到无法到达目的地的ICMP消息。

代码看起来不错。

其次,您是否有端口5400上的UDP服务器监听?看看你是否收到了什么。