我正在使用TcpClient
对象来发送和接收数据。当客户端失去连接时,我可以通过使用TcpView看到其关联的连接处于CLOSE_WAIT
状态。在c#中是否可以看到套接字的状态?我只是想检测CLOSE_WAIT
状态,以便我可以关闭服务器端的套接字。据我所知,我可以等待接收一定时间的字节,然后在没有收到任何内容的情况下关闭连接。我只想立即关闭套接字及其线程。是否可以在c#端检测到套接字的状态? TcpView程序可以确定这一点。 c#程序可以这样做吗?
答案 0 :(得分:0)
这不理想,但是如果你检查socket.Available
,它会抛出SocketException
。不过,你仍然需要检查原因。
同样不理想,因为它有点笨拙,就是拨打Poll()
(SelectRead
)。如果它返回true
,则要么读取数据要么关闭连接。如果没有数据要读,那就是你的答案。