簡介
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é)束