1

我有一个奇怪的问题。我有一个客户端向我的服务器发送数据包,但我的服务器 UDP 套接字从不接收它们。如果我发送而他试图接收,反过来也会发生同样的事情。

检查从wireshark捕获的这张图片:http: //img263.imageshack.us/img263/2636/bokus.png

我已将我的 UDP 套接字绑定到 EndPoint 192.168.2.3(服务器的内部 IP)和端口 9998。客户端将数据发送到我的 IP,然后应将其转发到本地服务器机器。如您所见,wireshark清楚地检测到目标端口为 9998 的 192.168.2.3 的传入数据包,但没有发送任何内容!

(......为什么它在目的港说 distinct32 btw?)

4

1 回答 1

0

其他需要注意的是确保您可能运行的任何防火墙都设置了规则以允许在端口 9998 上进行通信。

如果我不得不猜测(需要查看您接收的 C# 代码才能知道),看起来您可能正在尝试接收 UDP 数据包但在客户端使用 TCP 协议。(或者我可能只是误解了您屏幕截图的某些文字。)

使用 UDP 时无需“监听”连接。UDP 数据包没有连接/断开协议。他们也不保证数据包的接收顺序与发送的顺序相同。

尝试在您的 C# 客户端中使用这些内容,看看您是否获得数据。

var udpClient = new System.Net.Sockets.UdpClient(9998);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
于 2010-12-03T18:03:05.370 回答