不知道楼主说的情况出现时socket是否已经断开了,如果断开了客户端的recv这个函数我记得会返回“-1”。这样楼主做一个异常处理重新连接一下socket就行了。关于心跳包我的理解是,客户端每隔一个时间向服务端发一个包,之后服务端给一个回应。
我感觉是没有用的,你数据都已经收不到了,还向服务端发数据有什么用,服务端回了,客户端还是收不到。