华为云计算 云知识 libevent是什么
libevent是什么

简介

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!

----结束

上一篇:数据库基础知识 下一篇:SSL证书验证过程