找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5260|回复: 1

ACE Proactor在HP-UNIX平台下不能正常工作的问题

[复制链接]
发表于 2008-7-15 22:07:45 | 显示全部楼层 |阅读模式
大家好,
        Poractor能够在windows下正常运行,移植到hp-unix ia64位平台,能够正常编译和启动,但我们发现服务端不能监听到客户端的连接请求,怀疑是proactor_run_event_loop没有正常工作,请教各位dx,有没有碰到过类似的问题。
        平台:hp-unix ia64 B.11.23 U
        Proactor: ACE_POSIX_AIOCB_Proactor
        核心代码:
        
        //建立proacor,并启动event_loop
                int max_aio_operations = 512;
#ifdef _HPUX_11
        static ProactorType proactor_type = AIOCB;
#else
        static ProactorType proactor_type = DEFAULT;
#endif
        create_proactor(proactor_type,max_aio_operations);
        ACE_INET_Addr port_to_listen(m_nPort);

        if (m_dcAcceptor.open (port_to_listen,0,1,ACE_DEFAULT_BACKLOG,1,0,0,1,1) == -1){
                ACE_ERROR((LM_ERROR,"listen failure.\n"));
                return -1;
        }
        ACE_Proactor::instance()->proactor_run_event_loop();
        
        
      
       //监听到连接时,回调 handle_accept
void ClientAcceptor::handle_accept (const ACE_Asynch_Accept::Result &result)
{
        ACE_DEBUG((LM_DEBUG,ACE_TEXT("accept.\n")));
                ACE_Asynch_Acceptor<ClientService>::handle_accept(result);
}
      //建立Proactor Stream
ClientService* ClientAcceptor :: make_handler()
{
        ClientService* server;
        ACE_DEBUG((LM_DEBUG,ACE_TEXT("Acceptor.\n")));
        ACE_NEW_RETURN(server,ClientService,NULL);
        return server;
}

程序运行结果:
(8730 | 1) ACE_POSIX_AIOCB_Proactor::Max Number of AIOs=256
(1) Create Proactor Type = AIOCB
(1) calling ACE_Asynch_Acceptor<>::open in file `/public/ace/include/ace/Asynch_Acceptor.cpp' on line 61
   (1) calling ACE_Asynch_Acceptor<>::accept in file `/public/ace/include/ace/Asynch_Acceptor.cpp' on line 204
   (1) leaving ACE_Asynch_Acceptor<>::accept
(1) leaving ACE_Asynch_Acceptor<>::open
当客户端连接时,服务端没有任何相应,奇快的是客户端显示是连接成功的。
 楼主| 发表于 2008-7-15 22:08:02 | 显示全部楼层
Linux下用Proactor异步模式,有特殊的要求,要求系统对AIO有很好的支持才行。
建议还是不要用ACE 的 Proactor, 除了在Windows上可以正常运行外, 其他系统都有问题!!!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-22 16:52 , Processed in 0.014138 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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