libevent源碼學習一

最近自己在寫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裏的事件處理循環,當事件發生就調用設置的回調函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章