1

如果socket.ReceiveFrom (byte [] message, EndPoint endPoint)用于在绑定的 UDP 套接字上接收数据,但没有接收到数据,会发生什么?它是继续等待数据到达还是继续?我专门谈论 UDP 数据报。

4

2 回答 2

2

它将等待数据。如果此行为不够好,您可以使用异步接收。也使用 UDPClient。无需使用 Socket 本身。

如果没有数据可供读取,ReceiveFrom 方法将阻塞,直到数据可用

来源:http: //msdn.microsoft.com/en-us/library/aa329728%28v=vs.71%29.aspx

于 2011-12-31T05:19:10.007 回答
1

如果目标是强制您的套接字在 X 秒后停止侦听,以便您可以做其他事情(例如检查应用程序是否正在关闭)并且您正在使用同步套接字,那么我建议将其设置Socket.ReceiveTimeout为 X 秒数(以毫秒为单位的 1000 次Socket.ReceiveTimeout),然后捕获超时引发的异常。

于 2011-12-31T06:00:21.327 回答