R0:前瞻

來源:互聯網
上載者:User

標籤:style   http   color   io   使用   ar   for   檔案   sp   

原文連結http://www.wangafu.net/~nickm/libevent-book/Ref0_meta.html

Libevent使用手冊:前瞻

總覽:

Libevent是一個用來寫高效能跨平台非阻塞IO程式的庫.它的設計目標如下:

跨平台

     一個使用Libevent的程式應當能夠運行於libevent支援的各種平台.即便有時(某平台可能)沒有一種很好的實現非阻塞IO的方式,libevent也應該用一種還湊合(so-so)的方式,這樣你的程式才能運行於一個嚴苛的環境下。

高速

    libevent使用不同平台下可使用的最快的非阻塞IO實現,同時不引入過多的其他開銷.

擴充性

    libevent被設計為即便是要處理成千上萬條活躍連結時也工作良好.

便捷性

    無論何時,用libevent寫程式的最自然的方式都應該是一種穩定的,跨平台的方式.

 

Libevent分為以下幾個部分

evutil

     對不同平台的網路實現抽象而出的一套通用函數

event和event_base

      這是Libevent的核心部分.它針對各種各樣的平台相關的,基於事件的非阻塞IO(platform-specific, event-based nonblocking IO backends),抽象出一套API.它能夠告知你何時sockets可讀或可寫,提供了基本的逾時函數,並能夠偵測作業系統訊號.

bufferevent

    這些函數在Libevent的基於事件的核心代碼之上(event-based core)提供了更為便捷的封裝.他們使得你的應用程式請求已緩衝的讀寫,所以只有當真正的IO發生的時候,而不是socket可讀寫的時候,它們才會通知你.

    bufferevent介面有不同的後端實現,所以他可以充分利用不同平台提供的實現非阻塞IO的快速的方式,例如WINDOWS下的IOCP API.

evbuffer

    這個模組實現了作為bufferevents基礎的buffer,並提供了高效的,便於使用的函數.

evhttp

    一個簡單的HTTP client/server實現

evdns

    一個簡單的DNS client/server實現

evrpc

    一個簡單的RPC實現

 

庫

當安裝了Libevent,預設地,會安裝以下的庫:

libevent_core

    含有所有的核心的event和buffer功能.這個庫包含所有的event_base,evbuffer,bufferevent以及公用函數.

libevent_extra

    這個庫包含了你的程式可能會用到的一些與特定協議有關的功能.比如HTTP,DNS,RPC.

libevent

   這個庫的存在是因為一些曆史原因.它包括了libevent_core和libevent_extra的功能.你不應該用這個庫,它在未來版本的Libevent中會消失.

以下的庫在部分平台上才會被安裝:

libevent_pthreads

    這個庫添加了基於跨平台線程庫的線程和鎖的實現.這個庫和libevent_core是分開的,所以當你使用Libevent的時候除非你真的需要以多線程的方式使用Libevent,否則你是不需要連結這個庫的.

libevent_openssl

    這個庫使用bufferevents和OpenSSL庫,提供了加密通訊的功能.這個庫和libevent_core是分開的,所以當你使用Libevent的時候除非你真的需要使用加密串連,否則你是不需要連結OpenSSL的.

標頭檔

所有的標頭檔都放在event2目錄下.這些標頭檔大體可以分為3種:

API 標頭檔

   一個API標頭檔定義了一些LIbevent的公用介面.這些標頭檔的名字不帶尾碼.

相容性標頭檔

   相容性標頭檔定義了一些已經棄用的函數.除非你想將你的程式從舊版本的Libevent遷移過來,否則你不該使用這些標頭檔

結構體標頭檔

   這些標頭檔定義了相對不穩定的組件的結構(These headers define structures with relatively volatile layouts).這些結構被暴露給你一是以防你需要快速地訪問該結構,還有一些是出於曆史原因.如果你的程式直接依賴於這些標頭檔中的結構,可能會導致你的程式與不同版本的Libevent有二進位相容性問題,並且很難調試.這些標頭檔有“_struct.h”的尾碼.

     

 

     

R0:前瞻

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.