static int run_test (u_short localport) { ACE_INET_Addr local_addr (localport); Dgram_Endpoint *endpoint; ACE_NEW_RETURN (endpoint, Dgram_Endpoint (local_addr), -1); ACE_DEBUG((LM_DEBUG, "Starting server on port %d\n",port1)); // Read data from other side. if (ACE_Reactor::instance ()->register_handler (endpoint, ACE_Event_Handler::READ_MASK) == -1) ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::register_handler"), -1); int ret; while(1){ ACE_Time_Value tv(10, 0); ret = ACE_Reactor::instance ()->handle_events (&tv); /* Error occurred while handling event */ if (ret < 0) { ACE_ERROR_RETURN ((LM_DEBUG, "(%P|%t) %p\n", "handle_events"), -1); } /* We have timed out without handling an event, break out of loop */ if(ret == 0) break; } return 0; }
static int run_test (u_short localport, const ACE_TCHAR *remotehost, u_short remoteport, const ACE_TCHAR *peer) { ACE_INET_Addr remote_addr (remoteport, remotehost); ACE_INET_Addr local_addr (localport); Dgram_Endpoint *endpoint; ACE_NEW_RETURN (endpoint, Dgram_Endpoint (local_addr), -1); // Read data from other side. if (ACE_Reactor::instance ()->register_handler (endpoint, ACE_Event_Handler::READ_MASK) == -1) ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::register_handler"), -1); char buf[BUFSIZ]; ACE_OS::strcpy (buf, "Data to transmit"); size_t len = ACE_OS::strlen (buf); if (ACE_OS::strncmp (peer, ACE_TEXT("peer1"), 5) == 0) { ACE_DEBUG ((LM_DEBUG, "(%P|%t) sending data\n")); for (size_t i = 0; i < 20; i++) { endpoint->send (buf, len, remote_addr); ACE_DEBUG ((LM_DEBUG, "(%P|%t) .\n")); ACE_OS::sleep (1); } } for (int i = 0; i < 40; i++) { // Wait up to 10 seconds for data. ACE_Time_Value tv (10, 0); if (ACE_Reactor::instance ()->handle_events (tv) <= 0) ACE_ERROR_RETURN ((LM_DEBUG, "(%P|%t) %p\n", "handle_events"), -1); ACE_DEBUG ((LM_DEBUG, "(%P|%t) return from handle events\n")); endpoint->send (buf, len, remote_addr); ACE_DEBUG ((LM_DEBUG, "(%P|%t) .\n")); } if (ACE_Reactor::instance ()->remove_handler (endpoint, ACE_Event_Handler::READ_MASK) == -1) ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::remove_handler"), -1); ACE_DEBUG ((LM_DEBUG, "(%P|%t) exiting\n")); return 0; }