fd_set可以加64个?

zhiweiyouzhi 2011-08-28 08:09:03
那么select是否就是说可以监视64*3个套接字么?
...全文
188 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xengine-qyt 2011-08-31
  • 打赏
  • 举报
回复
select windows 中 默认支持64个,要看你咋编程,fd_set 里面规定值有64,你是不能超过的!你用轮循的方式就没这个限制了
chenjiawei007 2011-08-31
  • 打赏
  • 举报
回复
可以达到这点数量的并发,但是fd_set是去检测数组中的情况,这样设计导致效率上有些缺点,这也是select的缺点,当然并发量不超过1000的,select还是好用,开辟太大的数组,副作用还是有的。
CCliveHunter 2011-08-31
  • 打赏
  • 举报
回复
对的,fd_set最多可加64个,但是这个64是个宏定义的,你可以通过修改宏定义来修改这个最大值
96掌门师兄 2011-08-31
  • 打赏
  • 举报
回复
顶起来
hurryboylqs 2011-08-30
  • 打赏
  • 举报
回复
要想做高并发 尽量用iocp或者epoll之类的网络编程模型
一般的情况 select是不成什么大问题的
saiyaman5 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hurryboylqs 的回复:]

在include <WSock2.h>
之前定义下宏:
#define FD_SETSIZE 8096
include <WSock2.h>
[/Quote]

这样做会不会有什么副作用?
金金2019 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hurryboylqs 的回复:]

在include <WSock2.h>
之前定义下宏:
#define FD_SETSIZE 8096
include <WSock2.h>
[/Quote]
哈哈 不错
zuiyuezhou888 2011-08-29
  • 打赏
  • 举报
回复
select时可以64个64个的进行判断,所以就达到无限个
hurryboylqs 2011-08-29
  • 打赏
  • 举报
回复
在include <WSock2.h>
之前定义下宏:
#define FD_SETSIZE 8096
include <WSock2.h>
mayudong1 2011-08-29
  • 打赏
  • 举报
回复
在包含头文件之前先定义一下FD_SETSIZE的大小就可以了
zhiweiyouzhi 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hurryboylqs 的回复:]

8000个都可以,测试过
[/Quote]

????????????????????????????
真的假的?FD_set集合微软不是定义了最大只有64的么????
saiyaman5 2011-08-29
  • 打赏
  • 举报
回复
我也想了解下select模型如何做扩展
hurryboylqs 2011-08-29
  • 打赏
  • 举报
回复
8000个都可以,测试过
l460602540 2011-08-28
  • 打赏
  • 举报
回复
不太清楚,但帮忙顶一个。。
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]
int select(
__in int nfds,
__inout fd_set* readfds,
__inout fd_set* writefds,
__inout fd_set* exceptfds,
__in const struct timeval* timeout
);

它由三个集合,可读,可写和异常~
[/Quote]
应该是的吧,下次希望正面回答!!!!!!!!!
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lijianli9 的回复:]
可以,到一个头文件中修改那个宏定义的大小就可以了。
[/Quote]


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
lijianli9 2011-08-28
  • 打赏
  • 举报
回复
可以,到一个头文件中修改那个宏定义的大小就可以了。
Eleven 2011-08-28
  • 打赏
  • 举报
回复
int select(
__in int nfds,
__inout fd_set* readfds,
__inout fd_set* writefds,
__inout fd_set* exceptfds,
__in const struct timeval* timeout
);

它由三个集合,可读,可写和异常~

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧