rt,客户端20秒一次心跳包,5秒之内收不到应答就按服务器挂了处理,那服务器应该多少秒收不到心跳包就认定客户端挂掉了?20秒?25秒?40秒?

解决方案 »

  1.   

    服务器就按照22.5秒为基准吧.
    因为:
    最好的情况是:客户端在0秒发出,服务器在0秒收到
    最坏的情况是:客户端在20秒发出,服务器在22.5秒收到最长的延迟时间为:22.5-0 = 22.5因此服务器应该22.5收不到心跳包就认定客户端挂掉了
      

  2.   

    服务器也设定20秒客户端给服务器心跳包,服务器回传客户端心跳包。 每次心跳包都是由客户端发起。 服务器回复,保持通讯当客户端发出心跳包后,服务器端20秒没有收到,自然不会回复客户端。 由此认定
      

  3.   

    心跳包的频率和服务器/客户端无关,而和你希望对方多长时间检测到链路故障.例如你希望对方每50ms秒检测一次,你就每50毫秒发送一次.通讯双方应该使用同样的频率进行通信,否则心跳检测就没有意义了
      

  4.   

    我觉得你们误解了楼主的意思.