找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 11796|回复: 24

REACTOR模式下一个服务器最多连接多少客户端?

[复制链接]
发表于 2009-9-21 15:42:52 | 显示全部楼层 |阅读模式
rtrtrtrtrtrtrtrt
发表于 2009-9-21 16:08:49 | 显示全部楼层
这个问题是一个老问题,取决于选用的Reactor的具体实现与系统平台。
C++NPV2 4.4
Limited number of handles. Unlike ACE_Select_Reactor and ACE_TP_Reactor, which can be configured to demultiplex hundreds or thousands of handles, ACE_WFMO_Reactor can process no more than 62 handles. This limitation stems from the fact that Windows only allows WaitForMultipleObjects() to wait for 64 handles per thread. ACE_WFMO_Reactor uses two of these handles internally: one for its notification mechanism and another for synchronizing concurrent handler updates. If more than 64 handles must be demultiplexed, you can use multiple ACE_WFMO_Reactor objects in multiple threads, use the ACE_Proactor (Chapter 8), or use the ACE_Select_Reactor and increase its size via the mechanisms described in Sidebar 20 (page 92).
 楼主| 发表于 2009-9-21 16:18:13 | 显示全部楼层

回复 #2 modern 的帖子

我刚才也测试了下
这么说,我想连上千个客户端就不能用REACTOR了。

怎么修改,用哪种机制?
 楼主| 发表于 2009-9-21 16:26:27 | 显示全部楼层

回复 #2 modern 的帖子

我已经用REACTOR机制实现了大多数的功能,现在要增加客户端的连接书
用ACE_SELECT_REACTOR还是ACE_ACE_Proactor来实现,哪个比较好修改,我不想推到重来:'(
还有ACE_SELECT_REACTOR还是ACE_ACE_Proactor的优劣问题
发表于 2009-9-21 17:02:47 | 显示全部楼层
这个问题嘛,楼主还是需要仔细看C++NPv2第四章,自然会找到答案。
提示楼主一下,既然楼主已经知道有ACE_Select_Reactor,
ACE_TP_Reactory与ACE_WFMO_Reactor等实现之分。
ACE的设计者难道傻到会为为每种Reactor的实现分别定义一套独立的接口么?
 楼主| 发表于 2009-9-21 17:05:55 | 显示全部楼层

回复 #4 psycheqiqi 的帖子

刚看了帖子还有
ACE_Dev_Poll_Reactor
ACE_Dev_Poll_Reactor无法在windows上运行,但改成能在windows上运行的代码,就2、3行而已,顶多加载一个宏定义
能不能具体介绍下或者哪里有介绍ACE_Dev_Poll_Reactor的
 楼主| 发表于 2009-9-21 17:08:34 | 显示全部楼层

回复 #5 modern 的帖子

我还是先看书吧。刚看了一些帖。
可以直接设定REACTOR的实现

看书...谢谢modern
发表于 2009-9-21 22:22:29 | 显示全部楼层
普通使用select实现的REACTOR,在高并发下面,效率不高。改用Dev_Poll_Reactor才行。
 楼主| 发表于 2009-9-22 09:22:57 | 显示全部楼层

回复 #8 winston 的帖子

我想在windows下用ACE_Dev_Poll_Reactor,
是不是需要在$ACE_ROOT/ace/config.h中加载#define ACE_HAS_EVENT_POLL然后重新编译dll
然后才能
ACE_Dev_Poll_Reactor dev_reactor(1024);
ACE_Reactor reactor(&dev_reactor);
ACE_Reactor::instance(&reactor);
发表于 2009-9-22 09:40:57 | 显示全部楼层
windows下不支持Epoll的~
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2025-4-19 03:58 , Processed in 0.035884 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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