Libevent是一個用於編寫高速可移植非阻塞IO應用的庫,它的設計目標是:git
可移植性:使用libevent編寫的程序應該能夠在libevent支持的全部平臺上工做。即便沒有好的方式進行非阻塞IO,libevent也應該支持通常的方式,讓程序能夠在受限github
的環境中運行。後端
速度:libevent嘗試使用每一個平臺上最高速的非阻塞IO實現,而且不引入太多的額外開銷。緩存
可擴展性:libevent被設計爲程序即便須要上萬個活動套接字的時候也能夠良好工做。服務器
方便:不管什麼時候,最天然的使用libevent編寫程序的方式應該是穩定的、可移植的。網絡
libevent由如下組件構成:函數
evutil:用於抽象不一樣平臺網絡實現差別的通用功能。測試
event和event_base:libevent的核心,爲各類平臺特定的、基於事件的非阻塞IO後端提供抽象API,讓程序能夠知道套接字什麼時候已經準備好,能夠讀或者寫,而且處理基設計
本的超時功能,檢測OS信號。dns
bufferevent:爲libevent基於事件的核心提供使用更方便的封裝。除了通知程序套接字已經準備好讀寫以外,還讓程序能夠請求緩衝的讀寫操做,能夠知道什麼時候IO已經真
正發生。(bufferevent接口有多個後端,能夠採用系統可以提供的更快的非阻塞IO方式,如Windows中的IOCP。)
evbuffer:在bufferevent層之下實現了緩衝功能,而且提供了方便有效的訪問函數。
evhttp:一個簡單的HTTP客戶端/服務器實現。
evdns:一個簡單的DNS客戶端/服務器實現。
evrpc:一個簡單的RPC實現。
安裝libevent庫:
注意:必須以root用戶身份執行如下操做
一、下載源碼包
https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
二、解壓
tar zxvf libevent-2.0.21-stable.tar.gz
三、配置安裝路徑
cd libevent-2.0.21-stable
./configure -prefix=/usr
四、編譯並安裝
make
make install
五、測試libevent是否安裝成功:
#ls -al /usr/lib | grep libevent
六、若是編譯後的程序提示找不到libvent的so,則建立庫的連接和緩存文件
ldconfig