我正在通过TCP连接与服务器(我当然无法触摸)进行通信。我连接的应用程序需要两个连接。一个是“我想连接”,握手类型的东西,另一个是在不同的端口上,用于实际连接。经过几天的攻击,我发现,为了接受第二个连接,第一个断开连接(FIN)必须由服务器启动(它立即执行)。如果客户端启动断开连接,则第二个连接将被拒绝。
我已经阅读了很多关于此的帖子,我知道TCP连接以及你怎么不能真正知道连接是否活跃以及所有这些(请不要回复断线,断线,意外关机等) 。但有没有办法检测到远程服务器已正确断开 而不尝试向其写入数据。
同样,我不是在谈论掉线,断线等等。我想知道服务器何时发送我已经确认的FIN段。听起来很简单,对吧?
答案 0 :(得分:2)
如果我已正确理解NetworkStream - 文档。当您从NetworkStream(同步或异步)读取并返回0字节时,表示远程方已关闭连接。即,FIN已被确认。