简介
Libevent 是一个用C语言编写的、轻量级的 开源 高性能事件通知库,主要有以下几个亮点:
- 事件驱动( event-driven),高性能;
- 轻量级,专注于网络,不如 ACE 那么臃肿庞大;
- 源代码相当精炼、易读;
- 跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;
- 支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等;
- 支持 I/O,定时器和信号等事件;
- 注册事件优先级。
配置安装流程
1.配置编译环境
安装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)进入libevent的安装目录。
cd libevent-2.1.10-stable
3)生成Makefile文件
./configure
4)编译安装libevent。
“-j”参数可利用多核CPU加快编译速度,在本示例中,使用的是2核CPU,所以此处为“-j2”。
可通过下述命令查询CPU核数:
cat /proc/cpuinfo| grep "processor"| wc -l
make -j2
make install
----结束
4.运行和验证
我们通过到libevent官方为我们提供的demo,测试libevent是否安装完成。
1)进入sample目录
cd /usr/local/src/libevent-2.1.10-stable/sample
2)查看例子hello-world监控的端口
grep PORT hello-world.c
返回内容如下所示,表示监控的端口为9995,可根据实际需要修改端口号,本例采用默认端口。
[root@ecs sample]# grep PORT hello-world.c
static const int PORT = 9995;
sin.sin_port = htons(PORT);
说明: 云服务器 需要开放监听的端口,如果未开放,请参考如下链接处理:
https://support.huaweicloud.com/trouble-ecs/zh-cn_topic_0191526704.html
3)服务端:执行hello-world。
./hello-world
4)客户端:打开另外一个终端,输入如下命令。
nc 127.0.0.1 9995
上述命令会如果报错“bash: nc: command not found”,可通过如下命令安装nc工具,然后再次输入上述命令。
yum install nc -y
5)查看返回
返回内容如下所示,表示安装已经完成。
服务端返回:
[root@ecs sample]# ./hello-world
flushed answer
客户端返回
[root@ecs ~]# nc 127.0.0.1 9995
Hello, World!
----结束