。Net UdpClient接收-有关为何不返回任何内容的技术问题

问题描述 投票:0回答:1

我正在根据设备的IP地址和端口建立UDP连接(成功)。我可以成功地向它发送消息(以字节编码)。但是,我没有看到client.Receive()方法返回的响应。

我对您的技术问题与此Receive()方法有关。

也许我的理解是完全错误的,但是我想像我在调用Receive()方法时用于连接到设备的IP地址+端口应该是相同的。

但是根据示例,似乎并非如此。

有人可以向我解释为什么未使用相同的IP地址+端口调用Receive()时?

A) Note that i can see a response using a sniffer like Wireshark. But i just dont see the response returning from the C# udpClient.Receive(ref endpoint) method itself.

B) Also, i am using this API document which says that the device (drone) can receive and send a response on the same IPAddress + port.
c# .net udp datagram udpclient
1个回答
0
投票

UDP数据包是无状态的,实际上没有连接。与TCP流不同,connect方法不会触发任何网络数据包。它所做的只是提供一个默认地址,因此您在发送新数据包时不需要提供一个默认地址。并设置一个数据包筛选器,以便仅接收与该远程地址(包括端口号)完全匹配的数据包。

receive方法仍应为您提供远程端点的地址。

请注意,如果您尚未将UdpClient绑定到特定的端点,并且计算机具有多个网络地址,则OS可能会从与您期望的地址不同的地址发送数据包。

© www.soinside.com 2019 - 2024. All rights reserved.