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