找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4579|回复: 3

ACE 服务器端 反应器能支持的数量?

[复制链接]
发表于 2008-9-21 15:08:53 | 显示全部楼层 |阅读模式
我照着<ACE 程序员指南>第七章的例子写了一个网络服务器端的程序,发现当连接数超过61个时再向映器注册的时候返回值是-1(注册失败)
return this->reactor()->register_handler( this, ACE_Event_Handler::READ_MASK );
是不是反映器注册的数量有限制?如果有的话能不能修改这个限制?
有遇到这个问题的达人给介绍一下
 楼主| 发表于 2008-9-21 15:08:59 | 显示全部楼层
更换一下默认的反应器实现,默认用ACE_WFMO_Reactor,只能支持62个反应器,这是windows自己的限制,你可以改成ACE_Select_Reactor来破解限制。
 楼主| 发表于 2008-9-21 15:09:24 | 显示全部楼层
ACE_Select_Reactor在windows下和linux下分别能支持多少个句柄?(扣除ACE_Select_Reactor以使用的句柄外)
 楼主| 发表于 2008-9-21 15:09:44 | 显示全部楼层
改过来了, 测试了一下能支持1022个

ACE_Select_Reactor *select_reactor;
ACE_NEW_RETURN (select_reactor, ACE_Select_Reactor, 1);
ACE_Reactor *reactor;
ACE_NEW_RETURN (reactor, ACE_Reactor (select_reactor, 1), 1);
ACE_Reactor::instance (reactor, 1);

CClientAcceptor Accept;
Accept.reactor( ACE_Reactor::instance () );
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 07:54 , Processed in 0.016270 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表