搜索
bottom↓
回复: 4

请教lwip Raw中keepalive的问题

[复制链接]

出0入45汤圆

发表于 2024-1-4 12:15:08 | 显示全部楼层 |阅读模式
本帖最后由 Arm2048 于 2024-1-4 12:18 编辑

前提:ip=71的是电脑浏览器,ip=44的是STM32主板webserver; 因为STM32主板没有操作系统,只能用Raw接口函数;
          lwip保活KeepAlive设置: opt.h中:#define LWIP_TCP_KEEPALIVE              1
         /* create new tcp pcb */
              webpcb = tcp_new();
              if (webpcb != NULL) {
                   err_t err;
        #if 1       
                webpcb->so_options |= SOF_KEEPALIVE;
                //webpcb->keep_idle=5000; //ms
                webpcb->keep_intvl=5000; //ms
                webpcb->keep_cnt=12; //report error after 12
        #endif
                ............

问题:运行一会儿后,电脑向主板发送[TCP Keep-Alive],主板无应答,应该有TCP Keep-Alive ACK才对;从11:01:06秒到11:08:11秒都无应答,电脑向主板发送[RST ACK]后又激活连接;
1050:71浏览器向44主板请求dios.html;
1051:   44主板向浏览器发送diso.html;
1055:   71浏览器应答1051序号包;
然后从1555开始后面就奇怪了,71浏览器不知为什么发送了两次[RST ACK],这是是关闭连接了吗???
求分析解惑,多谢!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入45汤圆

 楼主| 发表于 2024-1-4 12:21:45 | 显示全部楼层
先看图片keep1是发生问题;
再看图片keep2是自动恢复;

出0入45汤圆

 楼主| 发表于 2024-1-4 15:01:22 | 显示全部楼层
很奇怪,这种TCP Keep-Alive无应答断开连接的情况,每次都持续6分钟55秒后,被电脑端发送[RST,ACK]重新恢复;
然后正常工作10秒,再次断掉....如此重复......

在STM32主板上打开/关闭LWIP_TCP_KEEPALIVE ,现象都一样。

出0入442汤圆

发表于 2024-1-4 18:00:55 | 显示全部楼层
?http协议不是长连接协议。tcp传输完毕之后必须中止。

出0入45汤圆

 楼主| 发表于 2024-1-5 09:56:26 | 显示全部楼层
本帖最后由 Arm2048 于 2024-1-5 09:58 编辑

stm32发送给浏览器的主网页html中包含javascript脚本,是ajax功能周期发送GET请求,STM32应答数据用来动态刷新网页局部数据;

如果我把ajax功能脚本注释掉不让其运行,虽然STM32也不应答电脑浏览器每隔45秒发送的KeepAlive,主网页长时间运行良好,提交的GET请求STM32都能收到并能正确应答;
如果开启ajax功能javascript脚本,登录进入主页面html后,STM32只能接收到5次电脑浏览器发送的ajax功能GET请求,以后的请求(ajax脚本请求或者网页其它提交请教)STM32都接收不到,wireshark抓包就是keep1.png的那种无应答[TCP Keep-Alive];

昨天有一次,无ajax功能脚本的情况下,STM32服务器端对浏览器发送的[TCP Keep-Alive]y应答良好,每次应答[TCP Keep-Alive ACK],但很后面重启后再也无法复现这种正常情况了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 22:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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