Libevent是一個用于編寫高速可移植非阻塞IO應用的庫,它的設計目标是:
可移植性:使用libevent編寫的程式應該可以在libevent支援的所有平台上工作。即使沒有好的方式進行非阻塞IO,libevent也應該支援一般的方式,讓程式可以在受限
的環境中運作。
速度:libevent嘗試使用每個平台上最高速的非阻塞IO實作,并且不引入太多的額外開銷。
可擴充性:libevent被設計為程式即使需要上萬個活動套接字的時候也可以良好工作。
友善:無論何時,最自然的使用libevent編寫程式的方式應該是穩定的、可移植的。
libevent由以下元件構成:
evutil:用于抽象不同平台網絡實作差異的通用功能。
event和event_base:libevent的核心,為各種平台特定的、基于事件的非阻塞IO後端提供抽象API,讓程式可以知道套接字何時已經準備好,可以讀或者寫,并且處理基
本的逾時功能,檢測OS信号。
bufferevent:為libevent基于事件的核心提供使用更友善的封裝。除了通知程式套接字已經準備好讀寫之外,還讓程式可以請求緩沖的讀寫操作,可以知道何時IO已經真
正發生。(bufferevent接口有多個後端,可以采用系統能夠提供的更快的非阻塞IO方式,如Windows中的IOCP。)
evbuffer:在bufferevent層之下實作了緩沖功能,并且提供了友善有效的通路函數。
evhttp:一個簡單的HTTP用戶端/伺服器實作。
evdns:一個簡單的DNS用戶端/伺服器實作。
evrpc:一個簡單的RPC實作。
安裝libevent庫:
注意:必須以root使用者身份執行以下操作
1、下載下傳源碼包
https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
2、解壓
tar zxvf libevent-2.0.21-stable.tar.gz
3、配置安裝路徑
cd libevent-2.0.21-stable
./configure -prefix=/usr
4、編譯并安裝
make
make install
5、測試libevent是否安裝成功:
#ls -al /usr/lib | grep libevent
6、如果編譯後的程式提示找不到libvent的so,則建立庫的連結和緩存檔案
ldconfig