乐鑫技术交流
直播中

王婷

7年用户 995经验值
私信 关注
[问答]

espconn_mesh_disconnect不会关闭TCP连接怎么处理?

大家好,在我的项目中,我有一个网格和一个 tcp 服务器,它们从传感器网络中接收数据。传感器网络形成一个网状网络,并使用
espconn_mesh_enable(mesh_enable_cb、MESH_ONLINE);
,然后每个设备通过以下方式发送数据
espconn_mesh_sent
功能。
我期望的行为是,一旦发送了数据,设备就会与服务器断开连接,关闭 TCP 连接,为此
espconn_mesh_disconnect
,但它没有关闭TCP连接,还有其他命令吗?谢谢
                                                                                                                                                      

回帖(1)

王莉

2024-7-12 17:24:59
您好!根据您的描述,您希望在发送数据后断开TCP连接。在ESP8266和ESP32的ESP-MESH框架中,`espconn_mesh_disconnect`函数确实用于断开连接。但是,如果它没有按预期工作,您可以尝试以下方法:

1. 确保在调用`espconn_mesh_disconnect`之前,您已经成功建立了连接。您可以检查连接状态,例如使用`espconn_mesh_get_connection_status`函数。

2. 在调用`espconn_mesh_disconnect`之后,您可以使用`vTaskDelay`函数等待一段时间,以确保连接已经完全断开。例如:

```c
espconn_mesh_disconnect(connection);
vTaskDelay(100 / portTICK_PERIOD_MS); // 等待100毫秒
```

3. 如果仍然无法断开连接,您可以尝试使用`espconn_disconnect`函数,该函数可以断开普通的TCP连接。但是请注意,这可能不适用于ESP-MESH框架。

4. 检查您的代码中是否有其他地方在尝试重新连接或保持连接。确保在发送数据后没有其他代码尝试重新建立连接。

5. 如果以上方法都无法解决问题,您可以尝试在ESP-MESH框架的GitHub仓库中查找类似问题的解决方案或报告问题。

希望这些建议能帮助您解决问题。如果您有其他问题,请随时提问。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分