none
判断TCPclient是否断开的几个疑问. RRS feed

  • 问题

  •     需要对客户端到服务器端的tcp连接作实时的判断,以便在网络连接非正常断开时及时进行处理,如果单纯用异常捕获机制来判断的话,延迟会比较大,网上搜索了好多信息,总结下来,如果要进行实时的判断,需要用到心跳包.关于心跳包,之前看到过一篇文章,是说client端发送空字节,然后如果断开有个特殊的数值返回,但是现在居然找不到类似的文章了,后悔当初没保存...... 不知道哪位大虾有的话,发我个连接,谢谢了!
        另外,对于心跳包或者说tcpclient类还有些疑问,如果我设置每1秒钟向服务器端发送心跳包,会不会影响正常的网络数据?比如我用同一个tcpclient实例正在向服务器发送一个比较大的文件,这个时候如果我还每隔1秒钟发送心跳包,会不会影响正常的文件传输?就是说心跳包里的数据流会不会影响到文件传输流?
        如果不影响,那心跳包是使用新流呢还是等待文件传输完毕再发送?
    2009年9月25日 10:55

全部回复

  • 你好!
         可以等待文件传输完毕再发送“心跳”
    周雪峰
    2009年9月25日 11:04
    版主
  •    你好:你的意思就是说,心跳包确实会影响其他正常的网络数据流是吗?
       但是我本身就是希望在传输文件的时候能够判断连接是不是断开啊,有没有完美的解决方法呢?
    2009年9月25日 11:14
  • 实际上这方面我也不是很了解,但是我感觉心跳包并不是在文件传输的用来检测的!
    如果想在发送数据前检测是否连接,可以在发送数据之前发送一个空字节!
    周雪峰
    2009年9月25日 11:45
    版主