TCP长连接保持连接状态(TCP keepalive设置)
来源:互联网 发布:皇室战争淘宝代充 编辑:程序博客网 时间:2024/04/28 21:57
转载:http://blog.csdn.net/embedded_sky/article/details/42077321
对于TCP长连接保活是十分必要的,原因如下:
1、系统多在OA网和外网间有防火墙隔离,很多防火墙对一段时间内没有报文活动的socket会自动关闭。
2、对于非正常断开的连接系统并不能侦测到,比如防火墙关闭端口、网线被拔掉、电脑突然奔掉、未关闭应用程序直接关机(服务端无法释放资源)。
(调用close(fd)为正常断开,连接对端可以侦测到)
TCP长连接保持的两种办法:
1) 应用层面的心跳机制
自定义心跳消息头.,一般客户端主动发送到服务端,服务器接收后进行回应(也可以不回应),以便能够侦测连接是否异常断开。
2) TCP协议自带的保活功能
通过设置TCP keepalive的属性,打开socket的keepalive属性,并设置发送底层心跳包的时间间隔。TCP/IP五层网络模型,我们调用socket等接口是应用层的函数,TCP keepalive是在底层定时发送心跳报文,服务器端接收到底层的心跳报文直接丢弃,不关心其内容。
使用TCP keepalive来保持长连接状态显然要舒服一些,直接调用系统的API即可实现,对于系统而言负担也更轻(相对第一种办法)。
以下是windows下TCP keepalive设置的函数。
阅读全文
0 0
- TCP长连接保持连接状态(TCP keepalive设置)
- TCP长连接保持连接状态TCP keepalive设置
- TCP长连接和Keepalive详解
- tcp长连接和保活时间(keepalive)
- TCP的长连接、短连接、keepalive及心跳
- nginx tcp proxy 连接保持设置
- TCP连接后保持连接
- TCP socket 长连接
- TCP长连接
- android tcp 长连接
- TCP长连接机制
- TCP长连接短连接
- TCP长连接短连接
- TCP长连接、短连接
- TCP长连接,短连接
- TCP短连接长连接
- TCP长连接、短连接
- TCP 长连接 短连接
- 人工智能
- ztree应用_02
- C语言中编写错误码
- Nginx负载均衡在windows上的配置
- 寻找旋转排序数组中的最小值 II
- TCP长连接保持连接状态(TCP keepalive设置)
- MongoDB的数据库如何备份和恢复?
- 13.1链表遍历
- HTML笔记 阴影与渐变调节
- Android 随笔背景实现工具——一行代码实现各种背景
- 知乎全网最高赞:人生最重要的三种能力,不是读书能学来的
- lower_bound的重载已经结构体的如何用
- uploadfiy插件的使用(01_多图)
- 交换两个数组的内容