Ping 远程登录服务器
本文关键字:登录 服务器 程登录 Ping | 更新日期: 2023-09-27 18:37:25
我编写自己的telnet客户端。我有一个问题,无法解决。我连接到设备并成功与之通信,但在某些时刻设备断开连接。
当我使用Zoc终端时,在这种情况下它会写"[TELNET]信息:断开连接"。
当我使用自己的终端时,我无法识别这种情况。TcpClient 中的属性"已连接"为 True。断开连接后尝试将某些内容写入流时,我会收到异常。但这为时已晚。
如何识别连接丢失?
谢谢。
尝试使用 Socket
而不是 TcpClient
。某些 telnet 守护程序需要每次按键来刷新缓冲区,因此请尝试在相关流上调用Stream.Flush
。我建议将NetworkSteam
绑在Socket
上,然后将其包裹在TextWriter
中,并在每次按键时调用Flush
。
使用 Socket
,您可以通过查看Socket.ReceiveAsync
成功完成且返回零字节来识别丢失的连接。还可以使用同步Socket.Receive
并检查引发的异常。