欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

muduo 网络库学习之路(一)

程序员文章站 2023-01-02 18:26:17
前提介绍: 本人是一名大三学生,主要使用C++开发,兴趣是高性能的服务器方面。 网络开发离不开网络库,所以今天开始学一个新的网络库,陈老师的muduo库 我参考的书籍就是陈老师自己关于muduo而编著这本《linux多线程服务器编程》 为什么选择muduo网络库: 我当初选择muduo网络库有三个方 ......

前提介绍:

  本人是一名大三学生,主要使用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网络库的知识和用法