2010-12-03 24 views
1

我有一个奇怪的问题。我有一个客户端发送数据包到我的服务器,但我的服务器UDP套接字永远不会收到它们。相反的事情发生在其他方面,如果我送,他试图接受。C# - WireShark检测到包数据包但应用程序没有收到它们

检查这一形象,Wireshark的捕获: http://img263.imageshack.us/img263/2636/bokus.png

我甲肝束缚我的UDP套接字到端点192.168.2.3,这是服务器的内部IP和端口9998 客户端发送数据到我的IP,然后应该被转发到本地服务器机器。 正如你可以看到wireshark清楚地检测到目的端口为9998的192.168.2.3的数据包,但没有任何东西被传送!

(...为什么它在BTW目的端口说distinct32?)

+0

你的问题没有提供任何线索可能是错误的。您的代码中可能存在一个错误。 – dtb 2010-12-03 17:59:31

+0

我不知道什么可能是错的; UDP套接字绑定到正确的EndPoint,并从右端接收receivedFrom。 receiveFrom回调永远不会被触发,我知道为什么会这样。什么可能会影响这个比错误的EndPoints(我知道是正确的)? – KaiserJohaan 2010-12-03 18:04:23

回答

0

别的东西看的是确保你可以运行任何防火墙有一个规则设置,让你的端口9998

上通信

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

Theres在使用UDP时不需要“监听”连接。 UDP数据包没有连接/断开协议。他们也不保证数据包按照它们发送的顺序接收。

尝试在C#客户端中沿着这些行使用某些内容并查看是否获取数据。

var udpClient = new System.Net.Sockets.UdpClient(9998); 
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); 
相关问题