是否有可能检测套接字是否处于CLOSE_WAIT状态
本文关键字:是否 WAIT 状态 CLOSE 有可能 检测 套接字 | 更新日期: 2023-09-27 18:03:20
我使用TcpClient
对象发送和接收数据。当客户端失去连接时,我可以使用TcpView看到其关联的连接处于CLOSE_WAIT
状态。在c#中可以看到套接字的状态吗?我只是想检测CLOSE_WAIT
状态,这样我就可以关闭服务器端的套接字。我明白,我可以等待接收一定时间的字节,然后关闭连接,如果没有收到任何东西。我宁愿立即关闭套接字及其线程。套接字的状态是否可以在c#端检测到?TcpView程序可以确定这一点。c#程序能做到这一点吗?
这不是理想的,但是如果您检查socket.Available
,它将抛出SocketException
。但是,您仍然需要检查原因。
也不理想,因为它有点笨拙,是调用Poll()
(与SelectRead
)。如果它返回true
,要么有数据要读,要么连接关闭。如果没有数据可读,那么这就是你的答案。