C#-WireShark检测到输入的数据包,但应用程序不接收它们
我有一个奇怪的问题。我有一个客户端向我的服务器发送数据包,但我的服务器UDP套接字从不接收数据包。同样的事情反过来发生,如果我发送,他尝试接收 检查从wireshark捕获的此图像: 我已将UDP套接字绑定到端点192.168.2.3(服务器的内部IP)和端口9998。 客户端将数据发送到我的IP,然后将其转发到本地服务器计算机。。 正如您所看到的,wireshark清楚地检测到192.168.2.3的目标端口为9998的输入数据包,但没有发送任何数据包C#-WireShark检测到输入的数据包,但应用程序不接收它们,c#,sockets,udp,wireshark,C#,Sockets,Udp,Wireshark,我有一个奇怪的问题。我有一个客户端向我的服务器发送数据包,但我的服务器UDP套接字从不接收数据包。同样的事情反过来发生,如果我发送,他尝试接收 检查从wireshark捕获的此图像: 我已将UDP套接字绑定到端点192.168.2.3(服务器的内部IP)和端口9998。 客户端将数据发送到我的IP,然后将其转发到本地服务器计算机。。 正如您所看到的,wireshark清楚地检测到192.168.2.3的目标端口为9998的输入数据包,但没有发送任何数据包 (…为什么会在目标端口中显示disti
(…为什么会在目标端口中显示distinct32 btw?另外需要注意的是,确保您可能运行的任何防火墙都具有允许在端口9998上进行通信的规则设置 如果我不得不猜测(需要查看您的接收C#代码才能知道),看起来您可能试图接收UDP数据包,但在客户端使用TCP协议。(或者我可能只是误解了你截图中的一些文字。) 使用UDP时,无需“侦听”连接。UDP数据包没有连接/断开连接协议。它们也不能保证数据包的接收顺序与发送顺序相同 试着在你的C#客户机中使用类似的东西,看看你是否得到了数据
var udpClient = new System.Net.Sockets.UdpClient(9998);
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
你的问题没有给出任何可能出错的线索。您的代码中可能有一个bug。我不知道可能有什么问题;UDP套接字绑定到正确的端点并从正确的端点接收。receiveFrom callback从未触发过,我知道这可能是为什么。除了错误的端点(我知道是正确的)之外,还有什么会影响到这一点?请回答最后一个问题:因为这是通常使用此端口的(非官方)服务:您是否检查了在数据到达应用程序之前丢弃数据的防火墙?UDP/TCP端口9998由“distinct32”服务或应用程序使用。我找不到关于它到底是什么的任何信息。这就像Wireshark将TCP端口25替换为“smtp”。您好,不,它不工作:(我不知道为什么它不工作,TCP工作正常,但不是UDP。