ACE_Reactor::instance()->register_handler(&dah,ACE_Event_Handler::ACCEPT_MASK);
while(1){
ACE_Reactor::instance()->handle_events();// 进入reactor事件循环
}
}
3.2 处理客户端连接
DBI_Accept_Handler设计:
class DBI_Accept_Handler: public ACE_Event_Handler {
public:
DBI_Accept_Handler(ACE_Addr &addr):{
peer_acceptor_.open(addr,1); //监听客户端连接
}
int handle_input(ACE_HANDLE handle);
ACE_HANDLE get_handle() const {
return peer_acceptor_.get_handle(); // 返回给反应堆的事件句柄
}
private:
ACE_SOCK_Acceptor peer_acceptor_;
};
int DBI_Accept_Handler::handle_input(ACE_HANDLE handle) { DBI_Input_Handler * dih= new DBI_Input_Handler();// 产生一个具体业务的事件处理器
|