繁体   English   中英

是否可以检测套接字是否处于CLOSE_WAIT状态?

[英]Is it possible to detect if a socket is in the CLOSE_WAIT state?

我正在使用TcpClient对象发送和接收数据。 当客户端失去连接时,通过使用TcpView可以看到其关联的连接处于CLOSE_WAIT状态。 是否可以在C#中查看套接字的状态? 我只想检测CLOSE_WAIT状态,以便可以关闭服务器端的套接字。 我知道我可以等待一定时间来接收字节,然后在什么都没收到的情况下关闭连接。 我只是希望立即关闭套接字及其线程。 是否可以在c#端检测套接字的状态? TcpView程序可以确定这一点。 ac#程序可以这样做吗?

这并不理想,但是如果您检查socket.Available ,它将抛出SocketException 不过,您仍然需要检查原因。

由于有点笨重,调用Poll() (使用SelectRead )也是不理想的。 如果返回true ,则说明有数据需要读取或连接已关闭。 如果没有要读取的数据,那就是您的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM