UDP通信,抓包工具能抓到数据,但软件读不到数据

UDP通信,数据发送方是一个单片机,主动向PC机发送UDP数据

但是 IPTool 抓包工具能读到指定IP地址和端口到指定PC机IP地址和端口的UDP数据。但PC机上的软件就是读不到数据,这可能是怎么回事?

PC机上用C# 和 Java 都试过了,并且用的是最基本的读数据代码,都读不到。

可以肯定的是,PC机上的C#和Java程序都没毛病,因为用另外一台PC机模拟单片机发送数据时,它是能正常读到数据的。

以下是C#和Java的读数据代码

Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
server.Bind(new IPEndPoint(IPAddress.Parse("192.168.0.30"), 4060));
Console.WriteLine("启动监听,本地端口:4060");
byte[] buffer = new byte[1024];
EndPoint remotePoint = new IPEndPoint(IPAddress.Any, 4001);
while (true) {
int size = server.ReceiveFrom(buffer, SocketFlags.None, ref remotePoint);
string hex = Convert.ToHexString(buffer, 0, size);
Console.WriteLine("收到数据:" + hex);
}
DatagramSocket ds = new DatagramSocket(4060);
byte[] buf = new byte[1024];
while(true){
DatagramPacket packet = new DatagramPacket(buf, buf.length);
ds.receive(packet);
System.out.println("data size = " + packet.getLength());
}

回答

会不会是监听绑定的地址不对

以上是UDP通信,抓包工具能抓到数据,但软件读不到数据的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>