完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用wiz包,使用w5500进行网络通信,对接到但是socket此时已经建立,正在通信,如果此时突然拔掉网线,因为本身使用非阻塞。所以我这边可以通过netdev_is_link_up检测到网线断开,但是此时我调用closesocket并不能释放网络资源。最后导致,我再次检测网线接入,重新创建socket的时候无法通信,应该时网络资源没有完全释放。因为如果我时在拔掉网线之前closesocket。然后再拔掉网线,再次接入网线,重新建立socket,此时是完全正常的。也没有发生内容泄漏。 |
|
相关推荐
2个回答
|
|
找到原因了。wiz包的closesocket中会检查网线连接情况,网线未连接,直接返回错误。理论上应该创建socket时检查网络连接情况,关闭socket也检查,就会导致把网线的时候。closesocket直接检查网线未接,直接返回,导致内存泄漏!! |
|
|
|
esocket函数不能完全释放网络资源。这种情况下,建议在检测到网线断开后,调用shutdown函数来关闭socket,并确保将收到的数据读取并处理完毕。然后再调用closesocket函数来释放网络资源。这样可以避免内存泄漏的问题。另外,如果需要重新建立socket,不要忘记重新配置socket的相关参数,比如IP地址、端口等。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1379 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1080 浏览 0 评论
1502 浏览 0 评论
1385 浏览 0 评论
1030 浏览 0 评论
74615 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 08:19 , Processed in 0.703447 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号