Ping Telnet服务器

时间:2013-10-30 15:55:01

标签: c# .net telnet

我编写自己的telnet客户端。我有一个问题,无法解决它。 我连接到设备并成功与之通信,但在某些时刻设备断开连接。

当我使用Zoc终端时,在这种情况下写“[TELNET] INFO:DISCONNECTED”。

当我使用自己的终端时,我无法识别这种情况。 TcpClient中的“已连接”属性为True。断开连接后,当我尝试将某些内容写入流时,我将收到异常。但为时已晚。

我如何识别连接丢失?

感谢。

1 个答案:

答案 0 :(得分:0)

尝试使用Socket代替TcpClient。某些telnet守护程序要求每次按键刷新缓冲区,因此请尝试在相关流上调用Stream.Flush。我建议您将NetworkSteam绑定到Socket并将其打包在TextWriter中,并在每次按键时调用Flush

使用Socket,您可以通过看到Socket.ReceiveAsync成功完成并返回零字节来识别丢失的连接。您还可以使用同步Socket.Receive并检查引发的异常。