我用TCP协议编写了一个服务器和客户端(阻塞模式),其中服务器不停的向客户端发送信息,请问如果强行关闭客户端,那么服务器如何才能及时的知道此时已断开连接呢?tcp服务器

解决方案 »

  1.   

    设定客户端每次在收到服务端的指令时自动回一个特定消息用来判断连接状态(比如"Yes Madam"),那假如客户端连续3次都没回的话就断了?
      

  2.   

    我以前做过这个,我们是视频传输解决中断的问题.
    定义一个局部变量 int a
    每次收到数据把a置为0
    起一个时钟(1000毫秒运行一次),每次a++,当a>3的时候我们就认为视频断开了
    因为每次收到数据a都为0了,那么当有数据的时候,视频不会认为断开,当视频断开或者收不到数据的时候,a就会一直加,加到3的时候(3秒钟后)那么肯定是收不到数据了.
    这样做是为了减少数据流量.客户端跟服务器都是如此.
      

  3.   

    客户端连服务器的指令都接收不到那就更没法回给你服务器了,那就更应该说明断开了嗯嗯,我现在就是用您说的这个方法来判断服务器和客户端是够断开连接的,效果貌似不错,我强制关闭客户端后,服务器的recv函数就会返回一个-1的值,呵呵,谢谢大侠!