muduo源码分析——整体架构

本文介绍了muduo网络库的整体结构,包括TcpServer、TcpConnection、Acceptor、Channel、EventLoop、EventLoopThread和EventLoopThreadPool等核心组件。文章强调了muduo大量使用回调函数可能导致的阅读难度,并详细阐述了TcpServer的初始化过程,特别是Acceptor如何通过Channel进行回调。此外,讨论了epoll事件驱动模型在读事件中的作用,以及数据的读写机制。后续将对muduo进行更深入的分析。
摘要由CSDN通过智能技术生成

 最近在学习网络编程,从flamingo这个服务器开始,当然这个服务器也是基于muduo开发的,所以也算是在研究muduo吧。
以前也有记录的习惯,在ipages上或者写在本子上,不过还是记录在博客上吧,一来可以分享自己的心得,二来备查也方便,再者有任何的理解偏差,也会有网友指正吧。

 之前也看过不少muduo的分析,这次决定按照自己的理解来写博客,或许会有偏差,希望大家能帮我指出来,谢谢!

 先从整体结构入手吧。

!!!注意,muduo大量使用了回调函数,所以会让人很晕,因为顺序和人阅读代码的顺序会相反,比如说来了一个新的连接,代码的顺序是epoll发现了,然后调用Channel内的函数,然后调用了对应的Acceptor的函数…
但是初始化的时候,是Acceptor对应有一个成员是Channel,这个成员Channel绑定了它的拥有者的回调函数。顺序是相反的,所以在阅读的时候会有一点晕,这一点需要注意,理清这一点,阅读代码会比较舒服。

整体结构

 muduo核心的几个类有TcpServer、TcpConnection、Acceptor、Channel、Eventloop、EventLoopThread、EventLoopThreadPool。

 关于socket操作等,或者说跟操作系统比较接近的有sockets、InetAddress。还有个epoller,那么在muduo中是poller,但是在我看的flamingo中用了epoller,这个无所谓拉。

 另外还有缓存设计buffer。</

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值