ace reactor的handle_input没有调用

ctgucool 2014-02-20 03:53:34
main函数

int main(int argc, char** argv)
{
CEventA *Event;
ACE_NEW_RETURN(Event, CEventA(ACE_Reactor::instance()), -1);
Event->open();

if (ACE_Reactor::run_event_loop() == -1)
{
ACE_DEBUG((LM_DEBUG, "run Reactor error"));
}

return -1;
};

ace_event_handler类

int CEventA::open(int nPort)
{
return reactor()->register_handler(this, ACE_Event_Handler::ALL_EVENTS_MASK);
}


int CEventA::handle_input(ACE_HANDLE hd)
{
ACE_DEBUG((LM_DEBUG, "handle in"));

return 0;
}

按书上说,应该会打印handle in,实际上为什么没有打印呢
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
__cc__ 2014-02-25
  • 打赏
  • 举报
回复
引用 3 楼 ctgucool 的回复:
[quote=引用 1 楼 neustar1 的回复:] 你这个CEventA有输入发生吗?没有,怎么会有handle_input呢。。。 handle_input是在注册的句柄有输入事件时候调用的,你光注册,并没有产生输入事件,是不会回调的。 这个应该发到网络编程论坛去。
示例见http://blog.csdn.net/Sakaue/article/details/10924569

int HandleAccept::open(u_short nPort)  
{  
    inet_address_.set(nPort);  
    if ( acceptor_.open(inet_address_ , 1) < 0 ) return -1;  
  
    ACE_SET_BITS(mask_ ,   
           ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK | ACE_Event_Handler::ACCEPT_MASK);  
      
    std::cout<<"HandleAccept::open()"<<std::endl;  
    return reactor()->register_handler(this , mask_);  
11.}  
这里只有一个ACE_SOCK_Acceptor acceptor_的open,怎么没有事件输入也调用handle_input呢[/quote]有socket连接吧
ctgucool 2014-02-21
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
你这个CEventA有输入发生吗?没有,怎么会有handle_input呢。。。 handle_input是在注册的句柄有输入事件时候调用的,你光注册,并没有产生输入事件,是不会回调的。 这个应该发到网络编程论坛去。
示例见http://blog.csdn.net/Sakaue/article/details/10924569

int HandleAccept::open(u_short nPort)  
{  
    inet_address_.set(nPort);  
    if ( acceptor_.open(inet_address_ , 1) < 0 ) return -1;  
  
    ACE_SET_BITS(mask_ ,   
           ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK | ACE_Event_Handler::ACCEPT_MASK);  
      
    std::cout<<"HandleAccept::open()"<<std::endl;  
    return reactor()->register_handler(this , mask_);  
11.}  
这里只有一个ACE_SOCK_Acceptor acceptor_的open,怎么没有事件输入也调用handle_input呢
ctgucool 2014-02-21
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
你这个CEventA有输入发生吗?没有,怎么会有handle_input呢。。。 handle_input是在注册的句柄有输入事件时候调用的,你光注册,并没有产生输入事件,是不会回调的。 这个应该发到网络编程论坛去。
书上
__cc__ 2014-02-21
  • 打赏
  • 举报
回复
你这个CEventA有输入发生吗?没有,怎么会有handle_input呢。。。 handle_input是在注册的句柄有输入事件时候调用的,你光注册,并没有产生输入事件,是不会回调的。 这个应该发到网络编程论坛去。

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧