最近自己在写web服务器,弄不动的时候看看libeven源码换换脑,首先来记录下简单的安装与使用
1.在官网上安装libevent源码包,链接http://libevent.org/
我下的是之前的老版本,因为主要是学习下他的思想,老版本相对来说看起来要简单点
2.下载后解压缩,再编译,安装,就可以在/usr/local/lib下看到动态链接库了
./configure
make
make install
3.使用
使用libevent写一个服务器其大致流程如下
(1)获取带监听的fd
(2)创建一个event_base;函数原型如下
struct event_base * event_base_new(void)
event_base内部有一个循环,循环阻塞在epoll等系统调用上,当监听对象有事件发生时,就去处理这些事件
(3)创建一个event,指定待监听的fd,待监听事件的类型,以及事件放生时的回调函数及传给回调函数的参数
(4)将event添加到event_base的事件管理器中
(5)开启event_base里的事件处理循环,当事件发生就调用设置的回调函数