我编写了一个套接字客户端,它将数据发送到套接字服务器,并等待套接字服务器对接收到的数据大小的响应。对于错误处理,如果套接字客户端等待的时间太长,我希望它像超时因素一样中止连接。我怎么做。这是我的代码:
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(new IPEndPoint(IPAddress.Parse(host), port));
clientSocket.Send(Encoding.ASCII.GetBytes(data));
// Get the total length
clientSocket.Receive(data);
非常感谢任何帮助。
答案 0 :(得分:3)
在ReceiveTimeout
对象上设置Socket
属性。
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receivetimeout.aspx
答案 1 :(得分:0)
据我所知,您使用的是TCP。 TCP确保可靠的交付。 即如果服务器关闭,则在“clientSocket”中获得零值。 此外,如果您想从服务器显式发送数据,您可以通过{ReceiveTimout}属性在服务器端和客户端双方设置超时。