一、libevent编程步骤
0、分配并初始化event_base,两种方法
0.1 event_base_new:线程安全,代替event_init;
0.2 event_init:线程不安全,不推荐使用,仅仅是为了向后兼容
1、创建event,设置event的回调函数,加入event_base,两种方法
1.1 event_new:函数内部分配event,并加入参数指定的event_base中;
1.2 event_set + event_base_set:函数外创建好event,作为参数传给event_set中current_base(一个全局event_base),然后通过event_base_set来将current_base改为参数指定的event_base
2、将事件添加到待处理事件集合中
event_add
3、开始事件循环,两种方法
event_base_dispatch或event_base_loop;
event_base_dispatch是对event_base_loop的简单封装
4、IO缓冲的使用
4.1 在开始事件循环之前,创建bufferevent,加入event_base中,并设置读写超时
bufferevent_new —>bufferevent_base_set —>bufferevent_settimeout
4.2 在使用bufferevent_new创建bufferevent的同时,指定回调函数,一般在回调函数中使用bufferevent_read和bufferevent_write
4.3 在上述“1、”的回调函数中,设置缓冲区读写时使用到的文件描述符,并使能
bufferevent_setfd —> bufferevent_enable