当前位置: 首页 > news >正文

Muduo库

✅ Muduo 库是干什么的?

Muduo 是一个 基于 C++11 的高性能事件驱动网络库,由 陈硕 开发,专为 Linux 平台下的高并发 TCP 服务器 设计。


📌 一句话总结

Muduo 是一个“帮你写高性能 TCP 服务器”的 C++ 框架,底层使用 epoll + 多线程 Reactor 模型,你只需要写业务逻辑,网络细节它全包了。


🎯 核心用途

场景说明
高并发服务器聊天室、游戏网关、RPC 框架、物联网接入层
快速原型开发用不到 100 行代码就能跑起一个 Echo 服务
教学/学习理解 Reactor、线程池、非阻塞 IO 的极佳实例

⚙️ 架构特色

模块作用
EventLoop每个线程一个事件循环,处理 IO 事件
TcpServer自动管理监听、连接分发、线程池
TcpConnection封装一个客户端连接,提供 send/shutdown 等接口
Channel封装文件描述符 + 事件回调
Poller默认使用 epoll,支持 poll 作为备选

🧪 最小可运行示例(Echo 服务器)

#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>
#include <muduo/net/InetAddress.h>using namespace muduo;
using namespace muduo::net;void onMessage(const TcpConnectionPtr& conn, Buffer* buf, Timestamp) {conn->send(buf->retrieveAllAsString()); // 回显
}int main() {EventLoop loop;TcpServer server(&loop, InetAddress(12345), "Echo");server.setMessageCallback(onMessage);server.setThreadNum(3);  // 3 个 IO 线程server.start();loop.loop();
}

🧩 依赖与安装

  • Linux only,需 C++11 编译器

  • 原版本依赖 Boost,社区已有 去除 Boost 的 C++11 移植版

  • 安装(Ubuntu)

    sudo apt install libmuduo-dev

✅ 总结一句话

如果你要在 Linux 下用 C++ 快速、稳定地写一个能扛 万级并发 的 TCP 服务器,Muduo 是最省心的选择之一

http://www.dtcms.com/a/302761.html

相关文章:

  • Effective Modern C++条款18:为什么在独占资源管理中使用`std::unique_ptr`?
  • getdents64系统调用及示例
  • 搭建HAProxy高可用负载均衡系统
  • 四、计算机组成原理——第2章:数据的表示和运算
  • OpenLayers 综合案例-动态闪烁
  • YOLO11 改进、魔改|低分辨率自注意力机制LRSA ,提取全局上下文建模与局部细节,提升小目标、密集小目标的检测能力
  • Python将Word转换为Excel
  • eclipse更改jdk环境和生成webservice客户端代码
  • Linux应用管理与YUM/DNF指南
  • 迅为RK3568开发板OpeHarmony学习开发手册-配置电源管理芯片和点亮HDMI屏幕-配置电源管理芯片
  • ARM share memory
  • 智慧工地系统:科技赋能建筑新未来
  • 电子签章(PDF)
  • 阿里云可观测 2025 年 6 月产品动态
  • 【机器学习-4】 | 集成学习 / 随机森林篇
  • 以科力锐为例介绍常见的数据中心4种灾备方式
  • HDFS Block与Spark的partition对比
  • MCU+RTOS调试
  • unisS5800XP-G交换机配置命令之端口篇
  • 经典算法题解析:从思路到实现,掌握核心编程思维
  • 分布式数据库中的“分布式连接”(Distributed Joins)
  • YOLOv8 基于RTSP流目标检测
  • 【C++详解】深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承
  • 把振动数据转成音频并播放
  • Kubernetes --存储入门
  • 实时YOLO目标检测与跟踪系统设计
  • [蓝牙通信] 临界区管理 | volatile | 同步(互斥锁与信号量) | handle
  • 谷歌浏览器深入用法全解析:解锁高效网络之旅
  • UVA11990 ``Dynamic‘‘ Inversion
  • kotlin基础【3】