最近自己在寫web服務器,弄不動的時候看看libeven源碼換換腦,首先來記錄下簡單的安裝與使用
1.在官網上安裝libevent源碼包,鏈接http://libevent.org/
我下的是之前的老版本,因爲主要是學習下他的思想,老版本相對來說看起來要簡單點
2.下載後解壓縮,再編譯,安裝,就可以在/usr/local/lib下看到動態鏈接庫了
./configure
make
make install
3.使用
使用libevent寫一個服務器其大致流程如下
(1)獲取帶監聽的fd
(2)創建一個event_base;函數原型如下
struct event_base * event_base_new(void)
event_base內部有一個循環,循環阻塞在epoll等系統調用上,當監聽對象有事件發生時,就去處理這些事件
(3)創建一個event,指定待監聽的fd,待監聽事件的類型,以及事件放生時的回調函數及傳給回調函數的參數
(4)將event添加到event_base的事件管理器中
(5)開啓event_base裏的事件處理循環,當事件發生就調用設置的回調函數