完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在使用espconn_set_opt设置了TCP断开连接后立刻释放内存,好像不生效。我用的是以下的设置方法:
err=espconn_set_opt(conn,ESPCONN_REUSEADDR); 每次TCP被动断开连接后仍然会占用内存2分钟,2分钟后才准时释放。然后下一个TCP才能正常发送,不然一直报内存错误。 而我用以下函数来注册write_finish_callback的时候是有效的,取消设置则无法进入writefinishcallback。所以应该不是函数使用的问题吧? espconn_set_opt(conn,ESPCONN_COPY); |
|
相关推荐
1个回答
|
|
从您的描述来看,您已经尝试使用`espconn_set_opt`来设置TCP断开连接后立刻释放内存,但是没有达到预期效果。这里有几个建议供您参考:
1. 确保您的ESP8266固件版本是最新的。有时候,旧版本的固件可能存在一些已知的问题,升级到最新版本可能会解决这些问题。 2. 检查您的代码逻辑,确保在TCP连接断开后,您正确地调用了`espconn_disconnect`函数来关闭连接。如果连接没有被正确关闭,可能会导致内存没有被释放。 3. 您可以尝试使用`ESPCONN_COPY`选项来替代`ESPCONN_REUSEADDR`。`ESPCONN_COPY`选项可以使TCP连接在断开后立即释放内存,但是需要注意的是,使用`ESPCONN_COPY`时,您需要手动复制数据到另一个缓冲区,然后再发送。 4. 如果您仍然遇到问题,可以尝试在ESP8266社区或者论坛上寻求帮助,看看是否有其他开发者遇到过类似的问题,并找到了解决方案。 5. 另外,您可以尝试使用其他库或者工具来实现TCP连接,例如lwIP库,看看是否能解决您的问题。 希望这些建议能对您有所帮助。如果问题仍然存在,请随时提供更多信息,以便我们更好地帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
545浏览 6评论
457浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
438浏览 5评论
441浏览 4评论
411浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:27 , Processed in 0.786310 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号