谢谢。

解决方案 »

  1.   

    TCP没有必要发送心跳包.
    ----------------------------
    断线怎么知道呢?
      

  2.   

    TCP层是没需要心跳的,上层协议现实连接检查,RFC上有,去看看
      

  3.   

    TCP没有必要发送心跳包.
    ----------------------------
    断线怎么知道呢?
    断线了就触发TCP断开事件啊.
      

  4.   

    TCP没有必要发送心跳包.
    ----------------------------
    断线怎么知道呢?
    断线了就触发TCP断开事件啊.
    ------------------------------TCP断开事件是什么事件呢?
      

  5.   

    肯定需要心跳包,
    否则,被动断网时,tcp是无法查觉的,
    比如,在未发送数据时,断开网线。
      

  6.   

    正如楼上所问,TCP当中断线之后,TCP协议本身就会检测得到,实际上TCP自身就有发送心跳包来维持连接.所以当TCP检测到断线之后,会提示指定的网络名不可用(ERROR_NETNAME_DELETED),特殊情况下会发生参数不正确(ERROR_INVALID_PARAMETER)的错误,这错误代码可以通过WSAGetLastError或者GetLastError获得,通常会在下一个相关网络函数调用失败时,使用GetLastError取得具体错误.
      

  7.   

    汗一下这个CSDN,本来凌晨的时候,我就回复过了,结果...
      

  8.   

    是啊,TCP本身就没有必要发心跳包
    UDP如果你的程序需要长时间保持通讯需要心跳包的
      

  9.   

    是的,TCP本身是有心跳包来维持连接的,但是时间很长,你觉得有什么实际意义?