文章目录
1.Acceptor
-
Acceptor用于accept(2)接受TCP连接
-
Acceptor的数据成员包括Socket、Channel,Acceptor的socket是listening socket(即server socket)。
该流程要十分熟练:
(1)Channel用于观察此socket的readable事件,Channel就处于活跃的状态,Poller::poll就能返回活跃的该Channel通道,并且调用Channel::handleEvent()对事件进行处理;
(2)由于它是可读的事件,它又会调用handleRead()函数,该handleRead()函数注册到Accptor类中,因为他是基于对象编程思想,可以将handleRead()注册到Accptor类的成员函数中;
(3)Accptor::handleRead()调用accept(2)来接受新连接,并通知用户回调用户callback(应用层的回调函数)。 -
eg:32\jmuduo\muduo\net\Acceptor.h
32\jmuduo\muduo\net\Acceptor.cc
32\jmuduo\muduo\net\CMakeLists.txt -
eg测试:32\jmuduo\tests\Reactor_test07.cc
32\jmuduo\tests\CMakeLists.txt -
测试:
客户端用telnet测试