如何在阻塞套接字中捕获超时
How to catch timeout in blocking socket
我正在尝试制作 Blocking UDP socket
(服务器)
如果没有收到数据,socket
将永远挂起。
我想5 sec timeout.
有什么解决办法吗?
byte[] data = new byte[1024];
socket.Bind(endpoint);
socket.Blocking = true;
EndPoint tmpRemote = (EndPoint)sender;
while (true)
{
try
{
recv = socket.ReceiveFrom(data, ref tmpRemote);
}
}
Socket class 包含 ReceiveTimeOut 属性 。您可以为此 属性 设置任何值并在发生超时时捕获异常。
请检查此 url :https://www.demo2s.com/csharp/csharp-socket-receivetimeout.html
我正在尝试制作 Blocking UDP socket
(服务器)
如果没有收到数据,socket
将永远挂起。
我想5 sec timeout.
有什么解决办法吗?
byte[] data = new byte[1024];
socket.Bind(endpoint);
socket.Blocking = true;
EndPoint tmpRemote = (EndPoint)sender;
while (true)
{
try
{
recv = socket.ReceiveFrom(data, ref tmpRemote);
}
}
Socket class 包含 ReceiveTimeOut 属性 。您可以为此 属性 设置任何值并在发生超时时捕获异常。 请检查此 url :https://www.demo2s.com/csharp/csharp-socket-receivetimeout.html