0
我在做一个客户端套接字。这个套接字将发送一些数据到另一个套接字并等待它的响应(如果有的话)。我希望我的客户端套接字等待响应5秒钟。问题是,如果我将它置于Receiver模式下,程序将只在获得连接后运行。我希望我的程序能够在一段时间内收听,直到他得到响应(女巫可能永远不会,如果其他套接字未被编程回答)。C#(套接字)在x秒内等待连接
我在做一个客户端套接字。这个套接字将发送一些数据到另一个套接字并等待它的响应(如果有的话)。我希望我的客户端套接字等待响应5秒钟。问题是,如果我将它置于Receiver模式下,程序将只在获得连接后运行。我希望我的程序能够在一段时间内收听,直到他得到响应(女巫可能永远不会,如果其他套接字未被编程回答)。C#(套接字)在x秒内等待连接
Socket类包含一个ReceiveTimeout属性,默认情况下它是无限的。
https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receivetimeout(v=vs.110).aspx
如果设置了这个值,那么Socket.Recieve()方法只会阻止,直到超时已过,那么将抛出一个TimeoutException。
Socket sock;
//socket connection and sending data
sock.ReceiveTimeout = 5000;
try {
data = sock.Receive();
}
catch (TimeoutException ex)
{
// it never answered
}
确实如此!非常感激! – jeyejow