ACE的接受器(Acceptor)和连接器(Connector):连接建立模式

ACE_Acceptor工厂的open()方法,或是它的缺省构造器(它实际上调用open()方法),来开始被动侦听连接。当接受器工厂的open()方法被调用时,如果反应堆单体还没有被实例化,open()方法就首先对其进行实例化。随后它调用底层具体接受器的open()方法。于是具体接受器会完成必要的初始化来侦听连接。例如,在使用ACE_SOCK_Acceptor的情况中,它打开socket,将其绑定到用户想要在其上侦听新连接的端口和地址上。在绑定端口后,它将会发出侦听调用。open方法随后将接受器工厂登记到反应堆。因而在接收到任何到来的连接请求时,反应堆会自动回调接受器工厂的handle_input()方法。注意正是因为这一原因,接受器工厂才从ACE_Event_Handler类层次派生;这样它才可以响应ACCEPT事件,并被反应堆自动回调。

在使用连接器的情况中,应用程序员调用连接器工厂的connect()方法或connect_n()方法来发起到对端的连接。除了其他一些选项,这两个方法的参数包括我们想要连接到的远地地址,以及我们是想要同步还是异步地完成连接。我们可以同步或异步地发起NUMBER_CONN个连接。

handle_input()将首先调用make_svc_handler()方法,创建适当类型的服务处理器。

 

原文地址:https://www.cnblogs.com/ph829/p/5543205.html