加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Muduo is a multithreaded C++ network library based on
the reactor pattern.
It runs on Linux with kernel version >= 2.6.28.
http://code.google.com/p/muduo/

Use of this source code is governed by a BSD-style
license that can be found in the License file.

  __  __           _
 |  \/  |         | |
 | \  / |_   _  __| |_   _  ___
 | |\/| | | | |/ _` | | | |/ _ \
 | |  | | |_| | (_| | |_| | (_) |
 |_|  |_|\__,_|\__,_|\__,_|\___/

 项目的原始链接:https://github.com/chenshuo/muduo
 本项目,是对muduo网络库代码的详细分析,
 代码中,加入了十分详细的中文注释,同时,也总结了PDF格式的代码分析文档

 作为,自己对c++ 网络编程学习的总结!
 ================================================================================================
                                          项目实现分析简介
 ================================================================================================
该项目,使用pthread线程库,Linux socket 网络编程API,实现高性能非阻塞 c++网络框架库
整个网络框架,共有如下几个功能模块:

客户端:用于编写客户端程序。采用单线程 和 Reactor模式进行实现。

服务端:用于编写服务端程序。服务端的线程模型,采用非阻塞IO + one  Loop  per  thread模型,主线程和线程池中的每个工作线程,均有一个event Loop(也就是Reactor),
       Reactor模式在进行实现时,使用epoll IO多路复用模型。此种实现方式,可以实现服务端程序对百万并发连接请求的处理。

定时器:用于编写定时任务。将定时器放入定时器容器中进行管理,为实现在定时器容器中,高效的查找和删除超时定时器,定时器容器采用std::set进行实现,
       同时为将socket读写事件和定时器超时事件,进行统一管理,使用timerfd_create创建系统定时器,并将创建的系统定时器文件描述符和socket文件描述符,
       均加入到epoll内核事件监听表中,进行统一监听。

socket API封装:对socket 网络编程API进行封装,供其他模块实现时调用。

Buffer封装:对std::vector容器进行了进一步的封装。由于,socket在进行读写操作时,均会出现无法在一次读写操作中接收和发送全部数据的情况,
           所以,就需要在客户端和服务端的每一个socket 连接上,均建立input buffer和output buffer。

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化