找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4749|回复: 5

关于ACE_Svc_Handler同时处理多个请求的问题

[复制链接]
发表于 2007-12-28 23:31:53 | 显示全部楼层 |阅读模式
class Accept_Handler:public ACE_Svc_Handler
<ACE_SOCK_STREAM,ACE_NULL_SYNCH>
    {   
      private:
        
        Request m_request;
     ……
    };
该类作为ACE_Acceptor的处理类,问题:
1、当有多个不同的client连接过来的时候,该Handler的handle_input会被多次调用,如果handle_input中要用到m_request对象,那么这些调用用的是否是同一个对象?还是每个不同的连接使用不同的对象?
2、若是同一个客户端连接,但发起多次请求。handle_input也会被多次调用,此时的m_request是否是同一个对象?

对Acceptor的机制不熟悉,故有此问。
 楼主| 发表于 2007-12-28 23:32:00 | 显示全部楼层
有多少个连接过来,Server就会new 多少个Accept_Handler对象,而不管是不同Client连接过来,还是同一个客户端连接,但发起多次请求。当然啦,每一个连接均会调用一次open()函数,有数据来或者对方关断连接,将分别调用各自Accept_Handler中的handle_input虚函数。不知我这样解释你满意不。
 楼主| 发表于 2007-12-28 23:32:08 | 显示全部楼层
1.每个不同的连接使用不同的对象

2.不是同一个对象
 楼主| 发表于 2007-12-28 23:32:18 | 显示全部楼层
默认就是分配一个handler,看默认实现就知道了。
发表于 2008-4-10 18:20:49 | 显示全部楼层

请高手指点

这几个Accept_Handler对象是在同一个线程里面吗?还是创建一个Accept_Handler对象就是创建一个线程?
发表于 2008-4-12 19:07:00 | 显示全部楼层
不能如此理解,这些对象一般用线程池调度。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 13:57 , Processed in 0.019379 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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