[Ace-users] how to implement nonblocking reconnect using connector-acceptor pattern ?
hongxing777 at gmail.com
hongxing777 at gmail.com
Thu Oct 18 15:35:52 CDT 2007
ACE version 5.6.1
Host windows xp sp2
Compiler ms visual studio 2003
In my app, I use ACE_Connector and an existing ACE_Svc_Handler object
to connect to the server. First, I call ACE_Connector::connect() with
USE_REACTOR options. If the server is not open or a connection is
dropped, handle_close is called.
Can I write reconnect logic in handle_close like the following:
int CMyHandler::handle_close(ACE_HANDLE handle, ACE_Reactor_Mask mask)
{
this->peer().close();
ACE_Time_Value to(5);
ACE_Synch_Options options(ACE_Synch_Options::USE_REACTOR, to);
if(Connect_(this, server_addr_, options) == -1 &&
ACE_OS::last_error() != EWOULDBLOCK)
return -1;
return 0;
}
My question is:
What's the normal implement logic of nonblocking reconnection ?
Is there any nonblocking reconnection example? In Chap 7 of C++NPv2,
there is only plain texts about that, but not in detail.
thanks!
More information about the Ace-users
mailing list