muduo源码分析:Acceptor类

本文分析了muduo库中的Acceptor类,它用于监听并接受客户端连接。Acceptor是对Channel的封装,关注listenfd的可读事件,并在接收到新连接时触发回调函数。文章详细介绍了Acceptor的构造、析构以及listen方法,并提供了使用示例,展示了如何设置回调函数并开始监听。
摘要由CSDN通过智能技术生成

Acceptor用于接受(accept)客户端的连接,通过设置回调函数通知使用者。它只在muduo网络库内部的TcpServer使用,由TcpServer控制它的生命期。

实际上,Acceptor只是对 Channel 的封装,通过Channel关注listenfd的 readable可读事件 ,并设置好回调函数就可以了。因此理解了上一节的muduo:Reactor,那么Acceptor也比较容易理解。


 

Acceptor.h

class Acceptor : boost::noncopyable
{
 public:
  typedef boost::function<void (int sockfd, const InetAddress&)> NewConnectionCallback;

  Acceptor(EventLoop* loop, const InetAddress& listenAddr, bool reuseport);
  ~Acceptor();

  void setNewConnectionCallback(const NewConnectionCallback& cb)	//设置新连接处理回调
  { newConnectionCallback_ = cb; }

  bool listenning() const { return listenning_; }
  void listen();		//启动监听套接字

 private:
  void handleRead();		//处理新连接到来的函数

  EventLoop* loop_;
  Socket acceptSocket_;		//监听套接字,Socket是个RAII型&#
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值