《Libevent深入浅出》 本教程要求有一定的服务并发编程基础,了解select和epoll等多路I/O复用机制。 教程目的主要是快速建立libevent的认知,了解libevent的常用数据结构和编程方法。 达到可以使用libevent写出自己的高并发服务器处理模型。 作者:刘丹冰 邮箱:danbing_at@163.com 目录 Libevent深入浅出 1 Libevent官方 2 epoll 2.1 流-IO操作-阻塞 2.2 解决阻塞死等待的办法 2.3 什么是epoll 2.4 epollAPI 2.5 触发模式 2.6 简单的epoll服务器 3 epoll和reactor 3.1 reactor反应堆模式 3.2 epoll的反应堆模式实现 4 event_base 4.1 创建event_base 4.2 检查event_base后端 4.3 释放event_base 4.4 event_base优先级 4.5 event_base和fork 5 事件循环event_loop 5.1 运行循环 5.2 停止循环 5.3 转储event_base的状态 6 事件event 6.1 创建事件 6.2 事件的未决和非未决 6.3 事件的优先级 6.4 检查事件状态 6.5 一次触发事件 6.6 手动激活事件 6.7 事件状态之间的转换 7 数据缓冲Bufferevent 7.1 回调和水位 7.2 延迟回调 7.3 bufferevent 选项标志 7.4 使用bufferevent 7.5 通用bufferevent操作 7.5.1 释放bufferevent操作 7.5.2 操作回调、水位和启用/禁用 7.5.3 操作bufferevent中的数据 7.5.4 bufferevent的清空操作 8 数据封装evBuffer 8.1 创建和释放evbuffer 8.2 evbuffer与线程安全 8.3 检查evbuffer 8.4 向evbuffer添加数据 8.5 evbuffer数据移动 8.6 添加数据到evbuffer前 8 链接监听器evconnlistener 8.1 创建和释放 evconnlistener 8.2 启用和禁用 evconnlistener 8.3 调整 evconnlistener 的回调函数 8.4 检测 evconnlistener 8.5 侦测错误 9 libevent常用设置 9.1 日志消息回调设置 9.2 致命错误回调设置 9.3 内存管理回调设置 9.4 锁和线程的设置 9.5 调试事件的使用 10 基于libevent服务器 10.1 Hello_World服务器(基于信号) 10.2 基于事件服务器 10.3 回显服务器 10.3 libevent实现http服务器 10.4 libevent实现TCP/IP服务器