news 2026/4/23 11:45:47

esp32c3的at固件,开启了tcp服务器和透传模式。设备连接tcp后关闭wifi后没有断开tcp连接

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
esp32c3的at固件,开启了tcp服务器和透传模式。设备连接tcp后关闭wifi后没有断开tcp连接

可以的,ESP-AT 里有两条路能解决你这个“客户端把 Wi-Fi 关了但没走 FIN/RST,服务端连接一直占着”的问题:


方案 A:用TCP Server 空闲超时(应用层“无数据就踢”)

ESP-AT 做 TCP 服务器时,可以设置在一段时间内“没有任何通信数据”就断开该客户端

AT+CIPSTO=<time>
  • <time>:0~7200 秒

  • 机制:ESP32 作为 TCP server 时,会断开“到超时仍未与其通信”的客户端;AT+CIPSTO=0则永不超时(不推荐) (Espressif Docs)

举例(30 秒无数据就断开):

AT+CIPMUX=1 AT+CIPSERVER=1,1234 AT+CIPSTO=30

适合你的“透传模式”:因为你只要让客户端每 10~20 秒发一次很小的心跳数据(比如 1 字节),就能同时实现“活着就不断、死了就踢”。


方案 B:用Socket 层 TCP KeepAlive(真正的 TCP 探测)

ESP-AT 提供了AT+CIPTCPOPT,可以对**每一路 TCP 连接(linkID)**设置 socket 选项,其中<keep_alive>会开启SO_KEEPALIVE,单位秒,范围 0~7200: (Espressif Systems)

AT+CIPTCPOPT=<linkID>,[<so_linger>],[<tcp_nodelay>],[<so_sndtimeo>][,<keep_alive>]

只改 keepalive(其余留空)一般这样写(注意逗号占位):

AT+CIPTCPOPT=0,,,,60

含义:对 linkID=0 的连接开启 keepalive,空闲 60 秒后开始探测。

另外,在 ESP32C3 的 ESP-AT 文档里说明:<keep alive>最终会配置到TCP_KEEPIDLE,并且TCP_KEEPINTVL默认 1 秒、TCP_KEEPCNT默认 3 次。(Espressif Docs)
也就是大致keep_alive + 3*1s这一量级内(对端完全不回应时)就能被判定掉线并释放连接。


你这个场景我建议怎么配

  1. 先开 CIPSTO(最稳、最直观):比如 30~120 秒

  2. 再开 keepalive(兜底,处理“没有业务数据但要检测死链”)

如果你在透传模式里没法随时发 AT 命令:

  • 先在进入透传前把CIPSTO/CIPTCPOPT配好;或

  • 需要时用+++退出透传再配置(ESP-AT 透传支持+++退出)。(Espressif Docs)


小提醒(很关键)

  • TCP keepalive 不是“客户端发心跳包”,而是本端协议栈发探测;对端 Wi-Fi 直接关掉通常不会优雅断开,所以你现在才会看到“连接占用”。keepalive/超时就是用来回收这种半死连接的。

  • 如果你希望“几秒级”断开:CIPSTO更像“无数据就踢”,通常比 TCP keepalive 更快、更可控。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 8:13:31

Java多线程编程避坑宝典(jstack实战死锁分析)

第一章&#xff1a;Java多线程编程中的常见陷阱 在Java多线程编程中&#xff0c;开发者常常因对并发机制理解不充分而陷入性能瓶颈或逻辑错误。尽管Java提供了丰富的并发工具类&#xff0c;但若使用不当&#xff0c;仍可能导致线程安全问题、死锁甚至内存泄漏。 共享变量的可见…

作者头像 李华
网站建设 2026/4/10 22:30:11

Z-Image-Turbo开源模型实战:output_image目录管理与删除操作指南

Z-Image-Turbo开源模型实战&#xff1a;output_image目录管理与删除操作指南 Z-Image-Turbo_UI界面设计简洁直观&#xff0c;功能布局清晰&#xff0c;适合新手快速上手。界面左侧为参数设置区&#xff0c;包含图像风格、分辨率、生成步数等常用选项&#xff1b;中间是图像预览…

作者头像 李华
网站建设 2026/4/13 12:01:42

SGLang-v0.5.6保姆级教程:从环境部署到首次调用

SGLang-v0.5.6保姆级教程&#xff1a;从环境部署到首次调用 SGLang-v0.5.6 是当前版本中稳定性与功能完整性兼具的一次重要更新。它不仅优化了底层推理性能&#xff0c;还进一步降低了用户在实际部署和调用过程中的复杂度。本文将带你一步步完成 SGLang 的环境搭建、服务启动&…

作者头像 李华
网站建设 2026/4/17 9:58:53

2026年AI视频生成趋势一文详解:TurboDiffusion开源框架成主流

2026年AI视频生成趋势一文详解&#xff1a;TurboDiffusion开源框架成主流 1. TurboDiffusion是什么&#xff1f; 1.1 高效视频生成的新标杆 TurboDiffusion是由清华大学、生数科技与加州大学伯克利分校联合推出的视频生成加速框架&#xff0c;正在迅速成为2026年AI视频创作领…

作者头像 李华
网站建设 2026/4/16 9:47:19

农业信息化平台如何通过WordPress处理Excel公式计算?

要求&#xff1a;开源&#xff0c;免费&#xff0c;技术支持 博客&#xff1a;WordPress 开发语言&#xff1a;PHP 数据库&#xff1a;MySQL 功能&#xff1a;导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台&#xff1a;Window…

作者头像 李华
网站建设 2026/4/18 20:13:12

智能制造MES系统如何调用WordPress的公式转码接口?

要求&#xff1a;开源&#xff0c;免费&#xff0c;技术支持 博客&#xff1a;WordPress 开发语言&#xff1a;PHP 数据库&#xff1a;MySQL 功能&#xff1a;导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台&#xff1a;Window…

作者头像 李华