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