如果我的客户端在另一端断开连接(kill -9 server),需要几分钟才能确定出现了问题。即使连接实际上已经断开,Socket.Connected
仍然返回true。
一旦另一端断开链接,最快的确定连接不存在的方法是什么?
客户端代码:
try{
Socket socket= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
/*Assume there is a connection on the other end*/
while (socket.Connected)
{
/*Do some processing*/
}
}catch (SocketException se){
Console.WriteLine(ex.Message);
} catch (Exception ex){
Console.WriteLine(ex.Message);
}
finally
{
Console.WriteLine("something bad happen");
}