Libevent 是一個(gè)用C語(yǔ)言編寫(xiě)的、輕量級(jí)的開(kāi)源高性能網(wǎng)絡(luò)庫(kù),主要有以下幾個(gè)亮點(diǎn):事件驅(qū)動(dòng)( event-driven),高性能;輕量級(jí),專注于網(wǎng)絡(luò),不如 ACE 那么臃腫龐大;源代碼相當(dāng)精煉、易讀;跨平臺(tái),支持 Windows、 Linux、 *BSD 和 Mac Os;支持多種 I/O 多路復(fù)用技術(shù), epoll、 poll、 dev/poll、 select 和 kqueue 等;支持 I/O,定時(shí)器和信號(hào)等事件;注冊(cè)事件優(yōu)先級(jí)。

  Libevent 已經(jīng)被廣泛的應(yīng)用,作為底層的網(wǎng)絡(luò)庫(kù);比如 memcached、 Vomit、 Nylon、 Netchat等等。Libevent之于C語(yǔ)言網(wǎng)絡(luò)編程,類似于Nettty之于Java Web編程。學(xué)習(xí)Netty的小伙伴,不防看下Libevent的實(shí)現(xiàn),會(huì)加深對(duì)Netty框架的理解~

  Libevent的安裝教程網(wǎng)上較多,LZ在此就不再贅述,下面直接來(lái)點(diǎn)干貨-Libevent如何使用。

 

檢查L(zhǎng)ibevent支持的IO復(fù)用方法

  Libevent作為一個(gè)高性能網(wǎng)絡(luò)庫(kù),內(nèi)部封裝了多種IO復(fù)用技術(shù),如果想看下Libevent在當(dāng)前系統(tǒng)下支持哪些IO復(fù)用技術(shù)呢?

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

int main(int argc, char **argv)
{    // 版本信息
    cout << event_get_version() << endl;    // 所支持的IO復(fù)用方法
    const char **methods = event_get_supported_methods();    for (int i = 0; methods[i] != NULL; i++) {
        cout << methods[i] << endl;
    }    return 0;
}

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

輸出結(jié)果為:(Centos7 Clion 2016.1.3環(huán)境)

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

網(wǎng)友評(píng)論