首页 > 解决方案 > TCP 服务器无法识别已关闭的物联网设备

问题描述

我已经构建了一个连接到多个 IOT 设备的服务器。它们仅通过 TCP 进行通信并使用供应商特定的协议。

我的服务器正在侦听 TCP 连接,每当我收到连接时,我都会EOF关闭连接并清理所有内容。

当我使用“数据包发送者”之类的工具时,这可以正常工作。一旦我单击“关闭”按钮,我的服务器就会识别出客户端关闭了连接,然后进行清理。

当我使用通过电话网络(SIM 卡)连接的真机时会出现问题。当我关闭它们时 - 我的服务器实际上没有任何反应。更糟糕的是:我仍然可以毫无问题地写入这些设备(设备离线除外)!

从我的角度来看,如果我们尝试写入连接,我们至少应该知道连接已被客户端关闭?

为什么我的工具“Packet Sender”和真机之间的行为会有如此大的差异?

另外:如何解决机器关闭时立即获得通知的问题?

提前致谢。

标签: gonetworkingtcp

解决方案


推荐阅读