概述
??????? 聲明,本文章東搬西扯抄來過的,并非原創,寫給自己參考的。
??????? 關于libevent的描述,有兩個百科的連接可以參考:
??????? libevent百度百科
??????? libevent維基百科
??????? 在維基百科時,有幾個有用的連接可以參考:
?????? libevent 2.0參考書籍(英文)
??????? 還有另一個競爭力的事件庫:
??????? libev(另一個有競爭力的事件庫)
??????? libevent是一個事件觸發的網絡庫,適用于windows、linux、bsd等多種平臺,內部使用select、epoll、kqueue等系統調用管理事件機制。libevent支持用戶使用三種類型的事件,分別是網絡IO、定時器、信號三種。Libevent提供了DNS,HTTP Server,RPC等組件。??????
相關組件
組件 | 說明 |
evutil | 不同平臺網絡實現的通用功能函數。 |
event 和event_base | libevent的核心。提供與平臺無關的事件驅動的非阻塞IO后端的API。它可以讓你知道socket何時可讀可寫,超時處理和系統信號探測。 |
bufferevent | 提供event_base更方便的封裝函數。提供緩沖支持。bufferevent同樣提供多種IO后端。 |
evbuffer | bufferevent的緩沖機制底層實現。并提供更方便和高效的緩沖訪問。 |
evhttp | 簡單的HTTP客戶端服務端實現。 |
evdns | 簡單的DNS客戶端服務端實現。 |
evrpc | 簡單的RPC客戶端服務端實現。 |
?
相關庫
庫 | 說明 |
libevent_core | 核心事件和緩沖功能。包含所有的event_base, evbuffer, bufferevent, 和工具函數。 |
libevent_extra | 協議相關的功能,包含HTTP, DNS, 和RPC。 |
libevent | 包含libevent_core和libevent_extra。由于歷史的原因而存在。新應用程序不應該連接這個庫。 |
libevent_pthread | 依賴事pthread線程庫,提供線程和鎖實現。當你使用pthread多線程時,才連接這個庫。(只在某些平臺存在) |
libevent_openssl | 依賴于OpenSSL庫的加密通信支持。當你使用加密通信時,才連接這個庫。(只在某些平臺存在) |
相關頭文件
??????? 所有的頭文件安裝在event2目錄下。頭文件大類別如下表:
類別 | 說明 |
API頭文件 | 這個是libevent的對外頭文件,文件沒有任何后輟。 |
兼容頭文件 | 兼容頭文件包含拋棄的函數定義,除非是為了移值舊的程序,否則不要使用。文件以_compat.h結尾。 |
結構體頭文件 | libevent結構體定義的頭文件。文件以_struct.h結尾。 |
??????? 除了上述提到的頭文件外,還有一些為了兼容舊程序而使用的頭文件。它們不放在event2目錄。放在這個目錄的上一層。這些文件其實是新文件的包裝而已。對應該關系如下表。
舊頭文件 | 被替換的頭文件 |
event.h | event2/event*.h, event2/buffer*.h, event2/bufferedevent*.h, event2/tag*.h |
evdns.h | event2/dns*.h |
evhttp.h | event2/http*.h |
rvrpc | event2/rpc*.h |
evutil | event2/util*.h |
?
其它
??????? 本文大多剽竊自 libevent-book 。具體請詳細參考之。另外很多懶人不太習慣LINUX的編程調試環境,所以根據libevent提供的Makefile建了個VC2008的解決方案,直接解壓出來丟到libevent目錄,分別編譯各個庫。另,只為了調試搞DEBUG版本的,RELEASE的動都沒動,sameple工程包括所有的例子了,直接編譯是不通的。所以如果你要分別測試的話,要搞掉其它的。最簡單的方法就是#if 0 #endif之類的。 下載VC2008解決方案 。
?
??????? 本文同時發在另一個BLOG: http://imlgc.com/?p=71
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
