前提介绍:

  本人是一名大三学生,主要使用C++开发,兴趣是高性能的服务器方面。

  网络开发离不开网络库,所以今天开始学一个新的网络库,陈老师的muduo库

  我参考的书籍就是陈老师自己关于muduo而编著这本《linux多线程服务器编程》

为什么选择muduo网络库:

  我当初选择muduo网络库有三个方面的原因,第一点就是muduo网络库的代码完全开源,我们可以很轻松的通过看muduo的源码来分析muduo在服务器开发中到底使用了什么技术

  其次muduo的框架并不是特别的复杂, 适合本人这种小白学习,并不是ACE那种特别庞大的网络库,不适合人来学习

  muduo的C++写法十分符合最新的C++写法,大部分使用了C++11的新特性,而不像很多其他开源C++网络库,里面还是会看到C的影子,更适合我们了解原本的C++而不被C的东西带偏了

muduo的下载与安装(本人使用ubuntu18.10)

  muduo的源码在github上面就能找到,但是编译和安装,你需要安装一些基础工具

  首先安装cmake:

    sudo apt-get install cmake

  muduo依赖于Boost:

    sudo apt-get install libboost-dev libboost-test-dev

  muduo还有三个非必须的依赖库,example有些事例依赖于这些

    sudo apt-get install libcurl4-openssl-dev libc-ares-dev

    sudo apt-get install protobuf-compiler libprotobuf-dev

  muduo的编译方法也很简单(我用的muduo-2.0.0):

    tar zxf muduo-2.0.0.tar.gz

    cd muduo/

    ./build.sh -j2

  如果想使用的话,需要讲编译出来的文件夹里面的lib导入到你的/usr/lib文件夹中

  头文件也可以放到/usr/include文件夹中,这样你就可以使用<>导入头文件

muduo的结构目录:

  我们可以使用tree命令来查看这个网络库文件的架构

  如果没有tree工具,可以在ubuntu上面直接使用apt安装

  这里可以看见一个example,里面含有大量的测试事例,我们可以通过这些例子来充分学习muduo网络库的知识和用法

muduo 网络库学习之路(一)的更多相关文章

  1. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

  2. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  3. muduo网络库学习笔记(三)TimerQueue定时器队列

    目录 muduo网络库学习笔记(三)TimerQueue定时器队列 Linux中的时间函数 timerfd简单使用介绍 timerfd示例 muduo中对timerfd的封装 TimerQueue的结 ...

  4. muduo网络库学习之MutexLock类、MutexLockGuard类、Condition类、CountDownLatch类封装中的知识点

    一.MutexLock 类 class  MutexLock  :  boost::noncopyable 二.MutexLockGuard类 class  MutexLockGuard  :  bo ...

  5. muduo网络库学习笔记(10):定时器的实现

    传统的Reactor通过控制select和poll的等待时间来实现定时,而现在在Linux中有了timerfd,我们可以用和处理IO事件相同的方式来处理定时,代码的一致性更好. 一.为什么选择time ...

  6. muduo网络库架构总结

    目录 muduo网络库简介 muduo网络库模块组成 Recator反应器 EventLoop的两个组件 TimerQueue定时器 Eventfd Connector和Acceptor连接器和监听器 ...

  7. muduo网络库源码学习————Timestamp.cc

    今天开始学习陈硕先生的muduo网络库,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解, ...

  8. 长文梳理muduo网络库核心代码、剖析优秀编程细节

    前言 muduo库是陈硕个人开发的tcp网络编程库,支持Reactor模型,推荐大家阅读陈硕写的<Linux多线程服务端编程:使用muduo C++网络库>.本人前段时间出于个人学习.找工 ...

  9. muduo网络库使用心得

    上个月看了朋友推荐的mudo网络库,下完代码得知是国内同行的开源作品,甚是敬佩.下了mudo使用手冊和035版的代码看了下结构,感觉是一个比較成熟并且方便使用的网络库.本人手头也有自己的网络库,尽管不 ...

随机推荐

  1. Android 获取全局Context的技巧

    回想这么久以来我们所学的内容,你会发现有很多地方都需要用到Context,弹出Toast的时候需要.启动活动的时候需要.发送广播的时候需要.操作数据库的时候需要.使用通知的时候需要等等等等.或许目前你 ...

  2. Android控件显示和隐藏

    Android控件都有visibility属性,该属性有三个可能值:visible.invisible.gone.可以通过预设或是Java程序控制这些控件的显示或隐藏. 一.在XML配置文件设置 可见 ...

  3. redis list 查询、下标查询、删除、裁剪、压入弹出、队列实现

    查询  lrange list 0 1 // 注意0和1之间是空格:这个命令和pop命令不一样,不会删除里面的值lrange list 0 -1 // 所有的 下标查询 lpush person zs ...

  4. doPost方法不支持 a 标签和地址栏直接输入地址访问

    demo <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  5. Oracle EBS 创建资产报错

    Solution:设置资产弹性域 随便输入一个值 再冻结

  6. asp.net mvc多级目录结构和多级area实现技巧

    今天在工作要实现这个多级area.其原因是这个项目需要多级的功能,大的类别里有小的类别,小的类别里有具体的功能项,每一个功能项还有若干动作Action,所以在菜单和mvc工程的结构上都需要有体现多级的 ...

  7. OSCache-缓存对象

    在实际应用中除了JSP标签库,还可以使用OSCache提供的Java API.下面我来介绍一个实用的Java类,使用GeneralCacheAdministrator来建立,刷新和管理缓存. Gene ...

  8. 如何在ScrollView滑动的瞬间禁用拖拽手势

    如何在ScrollView滑动的瞬间禁用拖拽手势 效果: 在UIScrollView滑动的瞬间禁用pan手势,可以防止用户按着屏幕不放后导致出现的一些莫须有的bug. // // ViewContro ...

  9. Hadoop HBase概念学习系列之HFile(二十)

    HFile文件是不定长的. HFile里才是想要的真正数据,实际存储的位置,是在HDFS上.

  10. 1星|《社群X平台》:没有实际工作经验的职业写手拼凑而成

    社群X平台 赋能企业指数级增长 网站上介绍作者有一些身份.书中没提作者的职位,只介绍是“码字为生”.书的封底有一些名人言论的引用,咋一看以为都是推荐本书,细看只有最后李善友在推荐本书,其他人的话都是跟 ...