如题!!

解决方案 »

  1.   

    网络连接断开可以分为两种:1.正常断开.
    这类问题可以处理.2.非正常断开.
    a. 客户端主机突然停电、被损坏、网线被剪断,这是一类;
    b. 客户端进程被结束任务程序强行中止, 此时物理连接是完好的.对于非正常断开, TCP/IP 协议不能检测, 这是 TCP/IP 的设计问题, 只能通过发送数据包来检测.
    如 HeartBeat 包. 只要包不能正常发送出去, 不管是基于上述何种原因, 都可以认为网络已经断开.在你的程序中加入两对 Socket ,其中一对用来发送 HeartBeat 包,每隔单位时间发送一次.
    出错则认为网络已经断开.对于非正常断开, 两对 SOCKET 必然同时断开,这样就可以处理非正常断开了
      

  2.   

    To:mingbao(★情已逝★) 
      我现在是按照你说的方法做的,但是有一个术语不太懂,什么叫 HeartBeat 包啊。
      

  3.   

    94定时发送的包。而且有回应。让client和service都能知道对方存在。类似心跳平率
      

  4.   

    随便发送个数据包不就得了?
    只是检测嘛,你可以 cstring str("还是连接的吗?"); send(s,str..)