1

背景

    我正在通过 TCP 连接与服务器(当然,我无法触摸)进行通信。我要连接的应用程序需要两个连接。一个作为“我想连接”,握手类型的东西,第二个,在不同的端口上,用于实际连接。经过几天的努力,我发现要接受第二个连接,第一个断开连接 (FIN) 必须由服务器启动(它会立即执行)。如果客户端发起断开连接,第二次连接将被拒绝。

问题:

    我已经阅读了很多关于此的帖子,并且我知道 TCP 连接以及您如何无法真正知道连接是否处于活动状态以及所有这些(请不要以断开连接、断线、意外关闭等响应)。但是有什么方法可以检测到远程服务器已正确断开连接而不尝试向其写入数据。

    再说一次,我不是在谈论掉线、断线等等。我想知道服务器何时发送我已确认的 FIN 段。听起来很简单,对吧?

4

1 回答 1

2

如果我正确理解了NetworkStream文档。当您从 NetworkStream 读取(同步或异步)时,它返回 0 字节,这意味着远程方已关闭连接。即,FIN 已被确认。

于 2013-03-02T13:03:25.760 回答