当前位置: 首页 > 网络知识

Qt TcpSocket的掉线解决方法

时间:2026-01-29 09:26:59

1、 tcpip协议
  没什么好说的,号称保证传输准确可靠,使命必达。协议很大一坨,实际应用上用得上的很少。

2 、问题所在
  在使用tcp协议跟服务器连接后(分别测试过windows系统,ubuntu系统 单片机带tcpip协议的通讯模块)都发现不能及时反馈或反馈 网络已断;(在同一个局域网内和公共网络上都一样,起初怀疑会不会ubuntu系统的网卡驱动有问题,后来发现windows系统也一样,用的是wifi联网)。最后只能说会不会是路由不是实时的。

3 、解决方法
  根据qt的说明文档是试错,各种方法都用过;反正你把网线拔了,Qt 的tcpsocket类依然是没有发现网络已断,发送依然是正常的。(本以为qt的这个类会比通用的tcp ip类会好点,一个鸟样,至于keepalive的选项,statechange也不可用,会不会很多tcp服务器也要使用keepalive的选项才能使用有效果,以后有时间试一下);现在解决方法有两个: 1)使用心跳包方式;每秒发送一次服务器应答一次;很耗CPU资源;2)(推荐)在自己的发送函数上socket_send(qbytedata msg)检测qtcpsocket state的状态,假如状态不是connnected,就重新连接;因为在路由上接上目标ip的服务器后,这边  statechange才会生效(拔线或掉线不会生效)。



上一篇:Qt QToolBox tab 文字居中
下一篇:Qt Charts 自定义样式
Qt
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素