如果socket.ReceiveFrom (byte [] message, EndPoint endPoint)
用于在绑定的 UDP 套接字上接收数据,但没有接收到数据,会发生什么?它是继续等待数据到达还是继续?我专门谈论 UDP 数据报。
问问题
1524 次
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 回答