没有合适的资源?快使用搜索试试~ 我知道了~
首页socket的keepalive介绍
socket的keepalive介绍
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
这是我在学习socket时对socket建立之后连接情况监测方法的总结,希望对你有所帮助。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/4626184/bg1.jpg)
Socket 的 keepalive 介绍
1、网络编程中 keepalive 的作用
TCP keepalive 是做 什么 的? 从名 字理 解就 能知 道, keepalive 就是用 来检 测一 个 tcp
connecon 是否还连接正常。
当一个 tcp connecon 建立好之后,如果双方都不发送数据的话,tcp 协议本身是不会发送
其他的任何数据的,也就是
说,在一个 idle 的 connecon 上,两个 socket 之间不产生任何的数据交换。从另一个方面
来讲,当一个 connecon 建立之后,
连接双方可以长时间不发送任何数据,比如几天,几星期甚至几个月,但该 connecon 仍
然存在。
所以,这就可能出现一个问题。举例来说,server 和 client 建立了一个 connecon,server
负责接收 client 的 request。
当 connecon 建立好之后,client 由于某种原因机器停机了。但 server 端并不知道,所以
server 就会一直监听着这个 connecon,
但其实这个 connecon 已经失效了。
keepalive 就是为这样的场景准备的。当把一个 socket 设置成了 keepalive,那么这个 socket
空闲一段时间后,它就会向对方发
送数据来确认对方仍然存在。放在上面的例子中,如果 client 停机了,那么 server 所发送
的 keepalive 数据就不会有 response,这
样 server 就能够确认 client 完蛋了(至少从表面上看是这样)。
2、setsockopt 实现 keepalive
无论 windows,还是 linux,keepalive 就三个参数:
sk->keepalive_probes:探测次数
sk->keepalive_me:探测的超时
sk->keepalive_intvl:探测间隔
对于一个已经建立的 tcp 连接。如果在 keepalive_me 时间内双方没有任何的数据包传输,
则开启 keepalive 功能的一端将发
送 keepalive 数据包,若没有收到应答,则每隔 keepalive_intvl 时间再发送该数据包,发送
keepalive_probes 次。一直没有收到
应答,则发送 rst 包关闭连接。若收到应答,则将计时器清零。
sk->keepalive_probes = 3;
sk->keepalive_me = 30;
sk->keepalive_intvl = 1;
意思就是说对于 tcp 连接,如果一直在 socket 上有数据来往就不会触发 keepalive,但是如
果 30 秒一直没有数据往来,则 keepalive
开始工作:发送探测包,收到响应则认为网络是好的,结束探测;如果没有响应就每隔 1
秒发探测包,一共发送 3 次,3 次后仍没有
相应,就关闭连接,也就是从网络开始断到你的 socket 能够意识到网络异常,最多花 33 秒。
但是如果没有设置 keep alive,可能
你在你的 socket(阻塞性)的上面,接收: recv 会一直阻塞不能返回,除非对端主动关闭连
接,因为 recv 不知道 socket 断了。发
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://profile-avatar.csdnimg.cn/a34eb33322ae4a1395ce549f1deeb304_qqsj110.jpg!1)
qqsj110
- 粉丝: 3
- 资源: 10
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)