前提介紹:
本人是一名大三學生,主要使用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網絡庫的知識和用法