C# TcpClient 连接状态检测
使用TcpClient和TcpListener编写了服务器端程序,并且使用的是异步处理;现有如下情景,请问怎么检测TcpClient的当前连接状态啊?客户端和服务器建立了连接,在服务器端的数组中保存了这个连接,然后客户端突然断开,当客户端再次重启后又和服务器建立了一个socket连接,服务器把第二个链接也保存到了数组,请问,如何检测第一个链接的当前连接状态?网上很多人使用了如下的方法,貌似这种方法并不能准确的判断当前的连接状态,请问有什么好的方法吗?
public static bool IsOnline(this TcpClient c)
{
return !((c.Client.Poll(1000, SelectMode.SelectRead) && (c.Client.Available == 0)) || !c.Client.Connected);
}