用CAsyncSocket类做了一个程序。也就是服务器端往客户端发,基本已经成功,只是现在发现服务器端发送数据过去(连续、不间断),而客户端在接收数据一段时间以后就会停下来,他们之间的连接是正常的。进过测试发现是一段时间以后客户端在不知原因的情况下没有收到数据以后服务器端没法数据过来。没办法,我做了一个时钟让客户端每1秒就和服务器端连接一次,也就是一秒钟发送一次FD_WRITE|FD_CLOSE事件,这样程序看上去就正常了。我知道这是一个很愚蠢的办法,网络编程中应该有好的办法解决这个问题,所以在此问一下大家,像这样的问题如何解决?谢了!

解决方案 »

  1.   

    研究一下 保活, KeepAlive...
      

  2.   

    KeepAlive这个东西好像没见过,刚在网络上查了一下,好像也没人用过。我的意思在我们普通的网络编程中就没有简单一些的通用办法?
      

  3.   

    这个原因还不知道如何去查,只是现在我知道在客户端停下来以后就不再有数据能接收到,非要我主动地向服务器端发一次FD_WRITE|FD_CLOSE事件,也就是和服务器端沟通一次那么数据就又过来了。我知道这期间他们之间的联系是没有断开的。