C#(套接字)在 x 秒内等待连接
C# (socket) wait for connection during x seconds
我正在制作客户端套接字。这个套接字将一些数据发送到另一个套接字并等待它的响应(如果有的话)。我希望我的客户端套接字等待响应 5 秒。问题是,如果我将它置于接收器模式,程序在获得连接后只会 运行 。我希望我的程序监听一段时间,直到他得到响应( 可能永远不会,如果另一个套接字没有被编程为响应)。
Socket class 包含一个 ReceiveTimeout 属性,默认情况下是 Infinite。
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
}
我正在制作客户端套接字。这个套接字将一些数据发送到另一个套接字并等待它的响应(如果有的话)。我希望我的客户端套接字等待响应 5 秒。问题是,如果我将它置于接收器模式,程序在获得连接后只会 运行 。我希望我的程序监听一段时间,直到他得到响应( 可能永远不会,如果另一个套接字没有被编程为响应)。
Socket class 包含一个 ReceiveTimeout 属性,默认情况下是 Infinite。
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
}