Libevent介绍
Libevent是一种适合于多平台的(Windows,Linux,BSD)多种平台的轻量级开源高性能事件触发网络库,在libevent内部使用select、poll、epoll等系统调用管理事件机制;
Libevent的下载安装
1、下载的网站在http://libevent.org
2、下载之后使用./configure --prefix=/home/用户名/lib
3、执行make
4、执行make install
然后再/usr/lib/libevent*.so
或者在/usr/lib64/libevent*.so
或者在/usr/local/lib/libevent*.so
可以找到这个库文件;
libevent的构成
libevent_core
:表示所有核心的事件和缓冲功能,通常包含event_base
以及evbuffer
、bufferevent
、以及各种工具函数
libevent_pthreads
:表示基于pthread
可移植线程库的线程和锁,并且独立于libevent_core
,这样程序使用libevent
时,就不需要连接到pthread,但是使用多线程方式例外;
libevent_extra
:用于定义的是特殊的协议,例如HTTP,DNS,RPC;
libevent
:这个库已经不经常使用;
Libevent的功能
1、事件通知:当文件描述符可读可写时执行回调函数;
2、IO缓存:缓存事件提供了输入输出缓存,能够自动的读入和写入,用户不必执行操作IO;
3、定时器:定时器机制,在一定时间间隔之后调用回调函数;
4、信号:触发信号,执行回调函数;
5、异步的DNS解析:异步解析DNS服务器的DNS解析函数集;
6、事件驱动的HTTP服务器:HTTP服务器;
7、RPC客户端服务器框架:RPC服务器和客户端框架,自动的封装和解封数据结构;
Rectory反应器模式
应用程序提供相应的接口并且注册到reactor,相应的事件发生之后,rector自动调用相应的注册的接口函数(类似于回调函数)通知;
简单的定时器
event_init()
:
evtimer_set()
:
event_add()
:
event_dispatch()
:
TCP服务器
event_base_new()
:
event_set()
:
event_base_set()
:
event_add()
:
event_base_dispatch()
:
网友评论