完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在编写基于ESP8266_RTOS_SDK的 tcp 客户端示例。
我正在使用 socket(), connect(),close() ...函数直接而不是 espconn_xxxx() api。 当我为TCP客户端设置保持活动状态参数时: ... client_fd= socket(); ... int keepAlive = 1; //enable keepalive int keepIdle = 10; //60s int keepInterval = 5; //5s int keepCount = 3; //retry times rslt = setsockopt(client_fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&keepAlive, sizeof(keepAlive)); rslt = setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, (void*)&keepIdle, sizeof(keepIdle)); rslt = setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, (void *)&keepInterval, sizeof(keepInterval)); rslt = setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPCNT, (void *)&keepCount, sizeof(keepCount)); ... connect(client_fd); ... 似乎 setsockopt 函数不起作用。 当服务器关闭套接字时,ESP8266 似乎没有在正确的时间知道这一点。 换句话说,当服务器关闭套接字时,recv() 不会在 10 5*3 = 25 秒内返回 -1。recv() 总是在 2 分钟内返回 -1。 |
|
相关推荐
1个回答
|
|
在这种情况下,可能有以下几个原因导致 ESP8266 TCP 保持活动状态功能不起作用:
1. **SDK版本问题**:确保你使用的 ESP8266_RTOS_SDK 是最新版本,因为旧版本可能存在一些已知的问题或不支持某些功能。 2. **函数使用错误**:在使用 `socket()`, `connect()`, `close()` 等函数时,请确保你正确地使用了它们。例如,在使用 `setsockopt()` 函数时,你需要确保传入正确的参数,如 `client_fd`(套接字描述符)和 `SO_KEEPALIVE`(保持活动状态选项)。 3. **参数设置问题**:检查你设置的参数是否正确。例如,`keepIdle`, `keepInterval`, `keepCount` 等参数的值是否符合预期。如果参数设置不正确,可能导致保持活动状态功能无法正常工作。 4. **网络环境问题**:网络环境可能影响 TCP 保持活动状态功能。例如,网络延迟、丢包等问题可能导致保持活动状态功能无法正常工作。 5. **ESP8266硬件问题**:ESP8266硬件本身可能存在问题,导致 TCP 保持活动状态功能无法正常工作。你可以尝试使用其他 ESP8266 模块或设备进行测试,以排除硬件问题。 为了解决这个问题,你可以尝试以下步骤: 1. 确保使用最新版本的 ESP8266_RTOS_SDK。 2. 检查代码中 `setsockopt()` 函数的使用是否正确。例如: ```c int rslt = setsockopt(client_fd, SOL_SOCKET, SO_KEEPALIVE, &keepAlive, sizeof(keepAlive)); ``` 3. 检查 `keepIdle`, `keepInterval`, `keepCount` 等参数的设置是否正确。 4. 检查网络环境,确保网络连接稳定。 5. 尝试使用其他 ESP8266 模块或设备进行测试,以排除硬件问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
198个成员聚集在这个小组
加入小组482 浏览 1 评论
1780 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
383浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
177浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
223浏览 2评论
用AT+CIPSNTPCFG=1,8,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\"更新不了时间怎么处理?
575浏览 2评论
268浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 02:47 , Processed in 0.534165 second(s), Total 75, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191