psycheqiqi 发表于 2009-9-21 15:42:52

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

rtrtrtrtrtrtrtrt

modern 发表于 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).

psycheqiqi 发表于 2009-9-21 16:18:13

回复 #2 modern 的帖子

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

怎么修改,用哪种机制?

psycheqiqi 发表于 2009-9-21 16:26:27

回复 #2 modern 的帖子

我已经用REACTOR机制实现了大多数的功能,现在要增加客户端的连接书
用ACE_SELECT_REACTOR还是ACE_ACE_Proactor来实现,哪个比较好修改,我不想推到重来:'(
还有ACE_SELECT_REACTOR还是ACE_ACE_Proactor的优劣问题

modern 发表于 2009-9-21 17:02:47

这个问题嘛,楼主还是需要仔细看C++NPv2第四章,自然会找到答案。
提示楼主一下,既然楼主已经知道有ACE_Select_Reactor,
ACE_TP_Reactory与ACE_WFMO_Reactor等实现之分。
ACE的设计者难道傻到会为为每种Reactor的实现分别定义一套独立的接口么?

psycheqiqi 发表于 2009-9-21 17:05:55

回复 #4 psycheqiqi 的帖子

刚看了帖子还有
ACE_Dev_Poll_Reactor
ACE_Dev_Poll_Reactor无法在windows上运行,但改成能在windows上运行的代码,就2、3行而已,顶多加载一个宏定义
能不能具体介绍下或者哪里有介绍ACE_Dev_Poll_Reactor的

psycheqiqi 发表于 2009-9-21 17:08:34

回复 #5 modern 的帖子

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

看书...谢谢modern

winston 发表于 2009-9-21 22:22:29

普通使用select实现的REACTOR,在高并发下面,效率不高。改用Dev_Poll_Reactor才行。

psycheqiqi 发表于 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);

modern 发表于 2009-9-22 09:40:57

windows下不支持Epoll的~
页: [1] 2 3
查看完整版本: REACTOR模式下一个服务器最多连接多少客户端?