总第22篇
在开发网络通信系统的过程中,有时客户端必须要知道网络的连接状态,而客户端与服务器断开连接的因素有很多。本文将综合分析各种情况,在此基础上介绍心跳包的使用与代码实现。
1.不同的网络断开连接情况
在常见的C/S结构系统中,网络断开连接状况主要可分为下面六种:
- 客户端网线断开;
- 客户端网络断开;
- 客户端通过
Http
代理连接服务器,代理机器断开代理; - 客户端通过
Http
代理连接服务器,代理机器网络断开; - 客户端通过
Http
代理连接服务器,代理机器的网线断开; - 服务器断开;
对于上面的六种情况,又可从连接服务器之前
和连接服务器之后
两方面来分析。
连接服务器之前:
对于第1种情况【客户端网线断开】,此时用socket
调用connectToHost()
方法连接服务器会立即触发 QTcpSocket
的error
信号, 我们可以绑定相应的信号槽去处理连接失败的结果。