libevent是什么

簡介

Libevent 是一個(gè)用C語言編寫的、輕量級的開源高性能事件通知庫,主要有以下幾個(gè)亮點(diǎn):

  • 事件驅(qū)動(dòng)( event-driven),高性能;
  • 輕量級,專注于網(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í)器和信號等事件;
  • 注冊事件優(yōu)先級。

配置安裝流程

1.配置編譯環(huán)境

安裝wget工具。

yum install wget -y

2.獲取源碼

獲取“libevent-2.1.10-stable”源碼包。

cd /usr/local/src

wget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz

3.編譯和安裝

1)解壓軟件包。

cd /usr/local/src

tar -zxvf libevent-2.1.10-stable.tar.gz

2)進(jìn)入libevent的安裝目錄。

cd libevent-2.1.10-stable

3)生成Makefile文件

./configure

4)編譯安裝libevent。

“-j”參數(shù)可利用多核CPU加快編譯速度,在本示例中,使用的是2核CPU,所以此處為“-j2”。

可通過下述命令查詢CPU核數(shù):

cat /proc/cpuinfo| grep "processor"| wc -l

make -j2

make install

----結(jié)束

4.運(yùn)行和驗(yàn)證

我們通過到libevent官方為我們提供的demo,測試libevent是否安裝完成。

1)進(jìn)入sample目錄

cd /usr/local/src/libevent-2.1.10-stable/sample

2)查看例子hello-world監(jiān)控的端口

grep PORT hello-world.c

返回內(nèi)容如下所示,表示監(jiān)控的端口為9995,可根據(jù)實(shí)際需要修改端口號,本例采用默認(rèn)端口。

[root@ecs sample]# grep PORT hello-world.c

static const int PORT = 9995;

sin.sin_port = htons(PORT);

說明: 云服務(wù)器 需要開放監(jiān)聽的端口,如果未開放,請參考如下鏈接處理:

https://support.huaweicloud.com/trouble-ecs/zh-cn_topic_0191526704.html

3)服務(wù)端:執(zhí)行hello-world。

./hello-world

4)客戶端:打開另外一個(gè)終端,輸入如下命令。

nc 127.0.0.1 9995

上述命令會(huì)如果報(bào)錯(cuò)“bash: nc: command not found”,可通過如下命令安裝nc工具,然后再次輸入上述命令。

yum install nc -y

5)查看返回

返回內(nèi)容如下所示,表示安裝已經(jīng)完成。

服務(wù)端返回:

[root@ecs sample]# ./hello-world 

flushed answer

客戶端返回

[root@ecs ~]# nc 127.0.0.1 9995

Hello, World!

----結(jié)束