完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友william hill官网
|
“sys/types.h”限制FD_SETSIZE为64。公司的项目用ESP32方案,用到了很多组播,还有个服务端,配置文件限制了LWIP能使用sockets数最大为16,则分配socket号从48开始,一旦超过63就会导致select失败。请问下,能不能增大LWIP sockets数超过16个。
|
|
相关推荐
2个回答
|
|
|
socket 你可以设置很大,但是没有必要。因为一般业务用不了这么多 socket,第二 socket 越多越占用内存。如果你想调大最大数量自己修改componts/lwip/kconifg文件里的配置就行了,或者将 IDF 升级到 最新的 release/v4.4
|
|
|
|
|
|
要增大LWIP的sockets数量超过16个,可以按照以下步骤操作:
1. 确定FD_SETSIZE的值:首先,您已经提到在“sys/types.h”文件中,FD_SETSIZE被限制为64。这意味着理论上可以支持64个sockets。 2. 检查LWIP配置:在LWIP的配置文件中(通常是lwipopts.h),查找与sockets数量相关的宏定义。例如,可能有一个名为`LWIP_SOCKET_OFFSET`的宏定义,它定义了sockets的起始编号。如果存在这个宏定义,请确保它的值是48,以便从48开始分配socket编号。 3. 调整LWIP配置:如果需要支持更多的sockets,可以尝试修改LWIP的配置文件,增加`LWIP_SOCKET_OFFSET`的值。例如,如果将其设置为32,那么sockets将从32开始分配,从而允许更多的sockets。 4. 检查select函数的实现:确保LWIP的select函数能够正确处理增加的sockets数量。这可能需要修改select函数的实现,以便它能够处理更多的sockets。 5. 测试和验证:在完成上述修改后,需要对系统进行测试,以确保新的配置可以正常工作,并且没有引入新的问题。 6. 考虑性能影响:增加sockets数量可能会对系统性能产生影响。确保在实际部署之前,对系统进行充分的性能测试。 7. 考虑内存限制:增加sockets数量可能会增加内存需求。确保系统有足够的内存来支持增加的sockets数量。 通过以上步骤,您应该可以成功地增大LWIP的sockets数量超过16个。但请注意,这可能需要对LWIP的源代码进行一些修改,以确保系统能够正确地处理增加的sockets数量。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
357 浏览 0 评论
1200 浏览 1 评论
590浏览 6评论
484浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
468浏览 5评论
467浏览 4评论
445浏览 4评论
/7
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 00:39 , Processed in 1.014242 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
166
