Linux-C-10-libevent

2017-06-30  本文已影响0人  秋风弄影

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以及evbufferbufferevent、以及各种工具函数
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():

上一篇下一篇

猜你喜欢

热点阅读