OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3081|回复: 0

LWIP 的KEEPALIVE功能说明

[复制链接]

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2014-8-20
在线时间
6 小时
发表于 2018-11-21 14:05:35 | 显示全部楼层 |阅读模式
基于原子的战舰版V3 netconn_server 例程,在lwipopts.h中,加入如下声明//LWIP保活选项
#define LWIP_TCP_KEEPALIVE           1
#define TCP_KEEPIDLE_DEFAULT         5000            //5秒内连接双方都无数据,则发起保活探测(该值默认为2小时)
#define TCP_KEEPINTVL_DEFAULT        5000            //每5秒发送一次保活探测
#define TCP_KEEPCNT_DEFAULT          3            //一共发送3次保活探测包,如果这3个包对方均无回应,则表示连接异常,内核关闭连接,并发送err回调到用户程序
#define TCP_MAXIDLE  TCP_KEEPCNT_DEFAULT * TCP_KEEPINTVL_DEFAULT



在        conn = netconn_new(NETCONN_TCP);  //创建一个TCP链接  这条语句后加入一句配置语句
        conn->pcb.tcp->so_options |= SOF_KEEPALIVE;//SOF_KEEPALIVE=0x08U

duang~~~~实现了TCP建立连接后,在TCP无通讯的情况下每5s发送一次TCP保活请求,当未接收到保活确认超过3*5s=15s后,tcp_thread向tcp_server端发送close来关闭连接。

wireshark抓包

wireshark抓包
Q0387]]U75XK%VEJQ]$9C8P.png
我只想往前走,不停地往前走
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 18:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表