1.1 libevent简介
Libevent 是一个用C语言编写的、轻量级的开源高性能网络库。具有以下特点:
- 事件驱动( event-driven)
- 高性能
- 轻量级
- 专注于网络
- 源代码相当精炼、易读
- 跨平台,支持多种 I/O 多路复用技术,
- 支持 I/O,定时器和信号等事件
- 注册事件优先级
1.2 libevent安装
1)下载libevent源码,即从libevent官网下载(http://libevent.org/)。
2)解压
#tar -zxvf libevent-2.1.8-stable.tar.gz
3)进入libevent源码目录,配置:
#cd libevent-2.1.8-stable
#./configure --prefix=/usr
4)编译并安装
# make && make install
1.3 libevent简单使用
libevent简单定时器:
#include<iostream>
#include<event.h>
using namespace std;
static char data[1024] = "Hello libevent";
struct event ev;
struct timeval tv;
void Fun(int fd,short n,void *a)
{
evtimer_del(&ev);
evtimer_add(&ev,&tv);
cout<<(char*)a<<endl;
}
int main(void)
{
event_init();
evtimer_set(&ev,Fun,data);
tv.tv_sec =1;
tv.tv_usec =0;
evtimer_add(&ev,&tv);
event_dispatch();
return 0;
}
效果如下图:
关于libevent源码,初次学习,仍需要多练习,多研究,多总结,多敲代码。