UDP Sockets in C#?

本文关键字:in Sockets UDP | 更新日期: 2023-09-27 18:19:19

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

UDP Sockets in C#?

等待数据。如果这种行为不够好,您可以使用异步接收。还要使用UDPClient。没有必要使用Socket本身。

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

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

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