如何在socketclient等待套接字服务器响应时退出TimeOut
问题描述:
我编写了一个套接字客户端,它将数据发送到套接字服务器并等待套接字服务器对接收数据大小的响应。对于错误处理,如果套接字客户端等待时间过长,我希望它中止连接,如超时因子。我怎么做。这里是我的代码:如何在socketclient等待套接字服务器响应时退出TimeOut
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);
任何帮助是极大的赞赏。
答
在Socket
对象上设置ReceiveTimeout
属性。
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receivetimeout.aspx
答
按照您使用的是TCP我的知识。 而TCP确保可靠的交付。 即,如果服务器关闭,您将在“clientSocket”中获得零值。 另外,如果你想明确地从服务器发送数据,你可以通过{ReceiveTimout}属性在服务器端和客户端两端设置超时。