go - TCP 服务器无法识别已关闭的物联网设备
问题描述
我已经构建了一个连接到多个 IOT 设备的服务器。它们仅通过 TCP 进行通信并使用供应商特定的协议。
我的服务器正在侦听 TCP 连接,每当我收到连接时,我都会EOF
关闭连接并清理所有内容。
当我使用“数据包发送者”之类的工具时,这可以正常工作。一旦我单击“关闭”按钮,我的服务器就会识别出客户端关闭了连接,然后进行清理。
当我使用通过电话网络(SIM 卡)连接的真机时会出现问题。当我关闭它们时 - 我的服务器实际上没有任何反应。更糟糕的是:我仍然可以毫无问题地写入这些设备(设备离线除外)!
从我的角度来看,如果我们尝试写入连接,我们至少应该知道连接已被客户端关闭?
为什么我的工具“Packet Sender”和真机之间的行为会有如此大的差异?
另外:如何解决机器关闭时立即获得通知的问题?
提前致谢。
解决方案
推荐阅读
- python - Django在退出管理页面时运行功能
- java - 无法在 servlet 中创建没有 web.xml 的第一个 api
- mysql - MYSQL CTE 递归更新
- vue.js - ELEMENT UI - 如何增加 ICON 的大小?
- asp.net - 如何使用 VB.NET 从 WebAPI 获取 JSON 数据?
- perl - 从 perl 数组中删除重复的哈希
- python - 掷骰子游戏的一些建议
- python - 在 GNU Radio 中使用 USRP 进行频谱感知
- flutter - Flutter WEB 下载选项
- ios - 在 iOS 中:我的应用程序能否启动另一个应用程序并获得回复/确认?