在Send()之后的UdpClient,Receive()不起作用?

请考虑以下代码:

client.Send(data, data.Length, endpoint); byte[] response = client.Receive(ref endpoint); 

虽然根据WireShark(网络嗅探器),远程主机确实回复数据,但这里的应用程序只是永远等待数据……由于某种原因,它没有从远程主机接收答案。

有任何想法吗?

您可能想要设置两个UdpClients:一个用于监听,一个用于发送。

对于接收UdpClient,请使用带端口的构造函数。

可能远程主机有防火墙,然后在发送请求设置之前无法响应请求

 client.Client.ReceiveTimeout = 5000; 

因此,当响应无法获得请求时,您会遇到exception