• 3831阅读
  • 3回复

[提问]TCP通信,终端设备关断电了,TCP连接还存在,正常吗? [复制链接]

上一主题 下一主题
离线纵刀少年
 

只看楼主 倒序阅读 楼主  发表于: 2014-10-22
是不是需要加入一段时间后收不到数据就断开这个socket的方法?
离线渡世白玉

只看该作者 1楼 发表于: 2014-10-22
绝对断开了啊、、
Qt的QTCPSocket封装好判断的、、你只需要捕捉erro信号就行了。
离线纵刀少年

只看该作者 2楼 发表于: 2014-10-23
回 渡世白玉 的帖子
渡世白玉:绝对断开了啊、、
Qt的QTCPSocket封装好判断的、、你只需要捕捉erro信号就行了。
 (2014-10-22 18:22) 

不是QT,C#的程序,可能是程序设计本身的问题。我再看看它指示连接客户端数的判断方法~~~~
离线begboy

只看该作者 3楼 发表于: 2014-10-23
回 纵刀少年 的帖子
纵刀少年:不是QT,C#的程序,可能是程序设计本身的问题。我再看看它指示连接客户端数的判断方法~~~~ (2014-10-23 08:29) 

纵刀少年,你好!
       从您的描述,可否理解如下:
      你目前是用C#编写服务器程序,利用tcpip协议与终端设备互联完成数据交换(或者功能)?
     而终端设备是使用QT进行编程? 若上述猜测成立,建议如下:
     1、 请直接调用底层 Windows API
      具体为:
      GetIfEntry API
      GetIfEntry返回的信息会保存在一个MIB_IFROW结构中,其中dwOperStatus属性描述了当前网卡的工作状态,包括正常工作、被禁用及网线未连接等,
      是十分准确判断是哪种情况的;
      2、  若终端设备也是你编程的,在服务端和客户端(终端设备)两边程序加入“心跳包”
      进行存活判断,若服务端超时未收到,则断开重连。

      祝好运!
      begboy
快速回复
限100 字节
 
上一个 下一个