【发布时间】:2013-11-10 08:22:14
【问题描述】:
我编写了自己的 telnet 客户端。我有一个问题,无法解决。 我连接到设备并成功与其通信,但在某些时候设备断开连接。
在这种情况下,当我使用 Zoc 终端时,它会写“[TELNET] INFO: DISCONNECTED”。
当我使用自己的终端时,我无法识别这种情况。 TcpClient 中的“已连接”属性为 True。当我在断开连接后尝试将某些内容写入流时,我会收到异常。但这为时已晚。
如何识别连接丢失?
谢谢。
【问题讨论】:
-
请出示相关源码...
-
var tcpSocket = new TcpClient(Host, Port); tcpSocket.Connect(主机,端口); var stream = tcpSocket.GetStream();
-
对不起,但这不是相关部分:-(
-
我在while循环中读/写数据。
-
如果您的意思是当客户端故意启动断开连接时,您应该修改您的协议以发送断开连接消息。如果您的意思是当客户端意外断开连接时(例如断电或 IP 地址更改),那么客户端将无法再进行通信。连接必须通过超时/连接重置在服务器端失败。