|
synch_Write_Dgram::recv")); // the handler will not get called in this case so lets clean up our msg msg->release (); break; default: // Something undocumented really went wrong. ACE_ERROR ((LM_ERROR, "[%D][line:%l]%p\n", "ACE_Asynch_Write_Dgram::recv")); msg->release (); break; } return res; } int Sender::send_to_multi_server(void) { string send_content; this->read_content(send_content); vector
server_addrs; global::read_server_addr(server_addrs); int send_success_number = 0; for (vector
::const_iterator iter = server_addrs.cbegin(); iter != server_addrs.cend(); ++iter) { if (send_to_one_server(*iter,send_content)) { ++send_success_number; } } return send_success_number; } void Sender::handle_write_dgram (const ACE_Asynch_Write_Dgram::Result &result) { ACE_DEBUG ((LM_DEBUG, "handle_write_dgram called\n")); ACE_DEBUG ((LM_DEBUG, "********************\n")); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "flags", result.flags ())); ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "act", result.act ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ())); ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "completion_key", result.completion_key ())); ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ())); ACE_DEBUG ((LM_DEBUG, "********************\n")); ACE_DEBUG ((LM_DEBUG, "Sender completed\n")); // No need for this message block anymore. result.message_block ()->release (); } int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_DEBUG ((LM_DEBUG, "(%t|%P) work starup/n")); ACE_Proactor::close_singleton (); ACE_WIN32_Proactor *impl = new ACE_WIN32_Proactor (0, 1); ACE_Proactor::instance (new ACE_Proactor (impl, 1), 1); ACE_Reactor::instance ()->register_handler(impl, impl->get_handle ()); global::read_interval(global::interval); //ACE_LOG_MSG->clr_flags(0); //ACE_LOG_MSG->set_flags(ACE_Log_Msg::STDERR | ACE_Log_Msg::VERBOSE); Sender sender(global::delay,global::interval); // Port that we're receiving connections on. u_short port = ACE_DEFAULT_SERVER_PORT; // Host that we're connecting to. string host("localhost"); if (sender.open (host.c_str(), port) == -1) return -1; ACE_Reactor::instance()->run_event_loop(); ACE_Reactor::instance ()->remove_handler (impl, ACE_Event_Handler::DONT_CALL); ACE_DEBUG ((LM_DEBUG, "(%t|%P) work complete/n")); return 0; }
所需配置文件:

|