#include <stdio.h> #include <ace/INET_Addr.h> #include <ace/Acceptor.h> #include <ace/Dev_Poll_Reactor.h> #include <ace/Svc_Handler.h> #include <ace/SOCK_Stream.h> #include <ace/SOCK_Acceptor.h> #include <stdlib.h> class CDebug_Accept_Handler:public ACE_Svc_Handler<ACE_SOCK_STREAM,ACE_MT_SYNCH> { public: CDebug_Accept_Handler() { ; } CDebug_Accept_Handler(ACE_Thread_Manager* tm) { ; } virtual ~CDebug_Accept_Handler() { ; } public: int svc(void) { return 0; } int open(void *) { printf ("open/n"); return 0; } int handle_input(ACE_HANDLE handle) { printf( "input/n" ); return 0; } int handle_close(ACE_HANDLE handle, ACE_Reactor_Mask mask) { printf( "close/n" ); return 0; } }; int main( int argc, char *argv[] ) { typedef ACE_Acceptor <CDebug_Accept_Handler, ACE_SOCK_ACCEPTOR> DEBUG_ACCEPTOR; ACE_Dev_Poll_Reactor *p_debug_epoll_reactor_ = NULL; try { p_debug_epoll_reactor_ = new ACE_Dev_Poll_Reactor(3000); } catch(...) { printf( "创建[调试处理epoll反应器]失败./n" ); return -1; } ACE_Reactor *p_debug_reactor_ = NULL; try { p_debug_reactor_ = new ACE_Reactor(p_debug_epoll_reactor_); } catch(...) { printf( "创建[调试处理反应器]失败./n" ); return -1; } unsigned long ulAddr = ACE_OS::inet_addr( "10.168.65.152" ); ACE_INET_Addr port_to_listen( 8585, ACE_NTOHL( ulAddr )); DEBUG_ACCEPTOR *p_debug_acceptor_ = NULL; try { p_debug_acceptor_ = new DEBUG_ACCEPTOR; } catch(...) { printf( "创建[调试处理连接器]失败./n" ); return -1; } int flags = 0; ACE_SET_BITS (flags, ACE_NONBLOCK); // Enable non-blocking int openResult = p_debug_acceptor_->open( port_to_listen, p_debug_reactor_, flags ); if ( -1 == openResult ) { printf( "打开[调试处理]监听端口失败./n" ); return -1; } // ACE_LOG_MSG->priority_mask (LM_DEBUG | LM_NOTICE, ACE_Log_Msg::PROCESS); ACE_DEBUG((LM_ERROR, ACT_TEXT("%t: %p/n"), ACE_TEXT("test"))); p_debug_reactor_->restart(1); int ret = 0; while ( true ) { ret = p_debug_reactor_->handle_events(); if (ret < 0) { perror( "handle events failed./n" ); printf( "ret %d", ret); break; } } sleep(1000); }