关于TcpClient.Connected的一个坑

重庆网站建设

声明了一个TcpClient

TcpClient tcp_client_model = null


在某处初始化并使用了tcp_client_model ,然后正常关闭后

用tcp_client_model.Connected检测有无连接,抛出了System.NullReferenceException的异常,一调试才发现tcp_client_model已经虽然不是null,但是它封装的SocketClient为null了,而tcp_client_model.Connected实质上是检测此socket是否连接,所以就有可能是这个原因.

所以在写回收函数的时候改成了这样

if( tcp_client_model != null && tcp_client_model.Client !=null && tcp_client_model.Client.Connected)  

{  

client.Close();  

}

估计是调用那个属性的时候没做socket是否为null的判断...

重庆网站建设http://www.zjcoo.com

你可能感兴趣的:(C#/windows)