完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想建立一个 TCP 连接,该连接在第一次数据发送后不会关闭,我阅读了有关 espconn_set_保持活着 函数的信息,该函数将心跳发送到服务器,因此它不会断开连接(如果我理解正确的话)。但是我不知道什么时候应该调用该函数?在连接CB?
我试过这样: 本地空ICACHE_FLASH_ATTR tcp_connect_cb(void *arg){ os_printf("We are connected!n"); sint8 ret = espconn_set_保持活着((struct espconn*)arg,ESPCONN_KEEPCNT,(void*)1000); if(ret==0) os_printf("Set 保持活着.n"); } 但是文本没有打印在我的串行终端上。我做错了什么? 任何帮助都非常感谢! |
|
相关推荐
1个回答
|
|
要使用`espconn_set_keepalive`函数来设置TCP连接的心跳,您需要按照以下步骤操作:
1. 首先,确保您已经包含了所需的头文件: ```c #include "espconn.h" #include "osapi.h" ``` 2. 定义一个`espconn`结构体,用于存储连接信息: ```c struct espconn esp_conn; ``` 3. 初始化`espconn`结构体,设置远程服务器的IP地址和端口号: ```c os_memset(&esp_conn, 0x00, sizeof(struct espconn)); esp_conn.type = ESPCONN_TCP; esp_conn.state = ESPCONN_NONE; esp_conn.proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp)); esp_conn.proto.tcp->local_port = espconn_port(); esp_conn.proto.tcp->remote_port = 您服务器的端口号; os_memcpy(esp_conn.proto.tcp->remote_ip, &您服务器的IP地址, 4); ``` 4. 定义一个连接回调函数,当连接建立时调用该函数: ```c void ICACHE_FLASH_ATTR tcp_connect_cb(void *arg) { os_printf("We are connected!n"); struct espconn *conn = (struct espconn *)arg; sint8 ret = espconn_set_keepalive(conn, ESPCONN_KEEP_IDLE, 1000); if (ret == 0) { os_printf("Set keepalive successfully.n"); } } ``` 5. 设置连接回调函数并尝试连接到服务器: ```c esp_conn.cb = tcp_connect_cb; espconn_regist_connectcb(&esp_conn, tcp_connect_cb); espconn_connect(&esp_conn); ``` 6. 在连接回调函数中,使用`espconn_set_keepalive`设置心跳参数。函数的参数如下: - 第一个参数:指向`espconn`结构体的指针。 - 第二个参数:设置心跳参数,`ESPCONN_KEEP_IDLE`表示在指定的空闲时间后发送心跳,`ESPCONN_KEEP_INTERVAL`表示每隔指定的时间发送心跳。 - 第三个参数:心跳间隔时间,单位为秒。 在这个例子中,我们在连接建立后立即调用`espconn_set_keepalive`函数,设置在1000秒的空闲时间后发送心跳,以保持连接的活跃状态。 请注意,这个例子是基于ESP8266的SDK。如果您使用的是其他平台或ESP32,请根据实际情况调整代码。 |
|
|
|
只有小组成员才能发言,加入小组>>
142 浏览 1 评论
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 17:51 , Processed in 0.651337 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号