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