TCP心跳包机制,在调试代码时引发的问题
背景:使用TCP进行CS开发时,需要判断 是否掉线等等。
目前实现:
简化如下:假设 client端 每秒向 server 发送 一个 心跳包,
而server端 每隔10秒 查询一下,各个 client 最后的 心跳包 时间,
如果某个client超过60秒不心跳,则直接 T掉 此 client.
目前遇到的问题:
正常run的时候,一切正常。
但是当client发现Bug时,你需要使用 VS2010进行 断点单步调试,
重点来了:当我在调试时,所有线程都 暂停下来了,包括 发送心跳包的 线程,因而,服务器就不会接收到 心跳包,因此,如果调试超过了 一定的时间(比如一分钟),此 client 将被 server T掉。
因此,我想知道,是否有人解决过,类似的问题,如何解决?