没有合适的资源?快使用搜索试试~ 我知道了~
首页libevent参考手册(中文版)_libevent-2.1.5-beta.pdf
libevent参考手册(中文版)_libevent-2.1.5-beta.pdf
5星 · 超过95%的资源 需积分: 50 159 下载量 122 浏览量
更新于2023-03-16
评论 4
收藏 1.05MB PDF 举报
本资料是参考libevent最新官方英文版本整理而成,且有目录,同时也参照了网上之前有人的译文《libevent参考手册(中文版).pdf》
资源详情
资源评论
资源推荐
libevent
参考手册
(
中文版
)
2016.01.31
说明,下面的文字我主要参考网文《libevent 参考手册(中文版)》和结合源码 libevent-2.1.5-beta 进行整理而得
目录
libevent 参考手册(中文版)...................................................................................................................................................... 1
1 前言(R ef0_meta . html ) ........................................................................................................................................................ 5
1.1 其设计目标 ..................................................................................................................................................................... 6
1.2 libevent 由下列组件构成 ............................................................................................................................................... 6
1.3 库 ................................................................................................................................................................................... 6
1.4 头文件 ............................................................................................................................................................................ 6
1.5 关于版本状态的提示 ....................................................................................................................................................... 7
2 设置 libevent (Ref1_libsetup.html ) ...................................................................................................................................... 7
2.1 Libevent 中的日志消息..................................................................................................................................................... 7
2.1.1 接口 ............................................................................................................................................................................. 7
2.1.2 示例: ............................................................................................................................................................................. 8
2.1.3 注意: ............................................................................................................................................................................. 9
2.2 处理致命错误 ................................................................................................................................................................. 9
2.2.1 接口 ............................................................................................................................................................................. 9
2.3 内存管理 ........................................................................................................................................................................ 9
2.3.1 接口 ............................................................................................................................................................................. 9
2.3.2 示例 ........................................................................................................................................................................... 10
2.3.3 注意 ........................................................................................................................................................................... 11
2.4 锁和线程 ...................................................................................................................................................................... 11
2.4.1 使用线程库类型 .......................................................................................................................................................... 11
2.4.2 使用自定义线程库 ...................................................................................................................................................... 12
2.4.3 调试锁的使用 ............................................................................................................................................................. 13
2.5 调试事件的使用 ............................................................................................................................................................ 14
2.5.1 启用调试模式接口 ...................................................................................................................................................... 14
2.5.2 示例 ........................................................................................................................................................................... 14
2.5.3 注意 ........................................................................................................................................................................... 15
2.6 检测 libevent 的版本 .................................................................................................................................................... 15
2.6.1 接口 ........................................................................................................................................................................... 15
2.6.2 示例:编译时检测 ...................................................................................................................................................... 16
3.6.3 示例:运行时检测 ...................................................................................................................................................... 16
2.6.4 注意 ........................................................................................................................................................................... 17
2.7 释放全局 Libevent 结构.................................................................................................................................................. 17
2.7.1 接口 ........................................................................................................................................................................... 17
2.7.2 注意 ........................................................................................................................................................................... 17
3 创建 event_base (Ref2_eventbase.html) ............................................................................................................................. 17
3.1 建立默认的 event_base ................................................................................................................................................. 18
3.1.1 接口 ........................................................................................................................................................................... 18
3.2 创建复杂的 event_base ................................................................................................................................................. 18
3.2.1 接口 ........................................................................................................................................................................... 18
3.2.2 接口 ........................................................................................................................................................................... 18
3.2.3 接口 ........................................................................................................................................................................... 19
3.2.4 接口 ........................................................................................................................................................................... 19
3.2.5 示例:首选边缘触发后端 ........................................................................................................................................... 20
3.2.6 示例:避免优先倒置 .................................................................................................................................................. 20
3.3 检查 event_base 的后端方法 ........................................................................................................................................ 21
3.3.1 接口 ........................................................................................................................................................................... 21
3.3.2 接口 ........................................................................................................................................................................... 21
3.4 释放 event_base ........................................................................................................................................................... 22
3.4.1 接口 ........................................................................................................................................................................... 22
3.4.2 注意 ........................................................................................................................................................................... 22
3.5 设置 event_base 的优先级............................................................................................................................................ 22
3.5.1 接口 ........................................................................................................................................................................... 22
3.5.2 接口 ........................................................................................................................................................................... 22
3.5.3 示例 ........................................................................................................................................................................... 22
3.6 在 fork()之后重新初始化 event_base ............................................................................................................................. 23
3.6.1 接口 ........................................................................................................................................................................... 23
3.6.2 示例 ........................................................................................................................................................................... 23
3.7 废弃的 event_base 函数 ............................................................................................................................................... 23
4 与事件循环一起工作(Ref3_eventloop.html)........................................................................................................................ 24
4.1 运行循环 ...................................................................................................................................................................... 24
4.1.1 接口 ........................................................................................................................................................................... 24
4.1.2 接口 ........................................................................................................................................................................... 25
4.2 停止循环 ...................................................................................................................................................................... 25
4.2.1 接口 ........................................................................................................................................................................... 25
4.2.2 示例:立即关闭 ......................................................................................................................................................... 25
4.2.3 示例:执行事件循环 10 秒,然后退出 ........................................................................................................................ 26
4.2.4 检测退出方式 ............................................................................................................................................................. 26
4.2.5 注意 ........................................................................................................................................................................... 26
4.3 重新检查 events ............................................................................................................................................................ 26
4.4 检查内部时间缓存 ........................................................................................................................................................ 27
4.4.1 接口 ........................................................................................................................................................................... 27
4.4.2 注意 ........................................................................................................................................................................... 27
4.5 转储 event_base 的状态 ............................................................................................................................................... 27
4.5.1 接口 ........................................................................................................................................................................... 27
4.6 在 event_base 中的每个事件上运行一个函数 ................................................................................................................. 27
4.7 废弃的事件循环函数 ..................................................................................................................................................... 28
5 与 event 一起工作(Ref4_event.html) .................................................................................................................................. 28
5.1 构造 event 对象.............................................................................................................................................................. 29
5.1.1 接口 ........................................................................................................................................................................... 29
5.1.2 示例 ........................................................................................................................................................................... 29
5.1.3 注意 ........................................................................................................................................................................... 30
5.1.4 Event 标志 ................................................................................................................................................................... 30
5.1.5 关于事件持久性 ......................................................................................................................................................... 30
5.1.6 只有超时的事件 ......................................................................................................................................................... 31
5.1.7 构造信号事件 libevent ................................................................................................................................................ 32
5.1.8 设置不使用堆分配的 event ......................................................................................................................................... 33
5.2 让事件未决和非未决 ..................................................................................................................................................... 35
5.2.1 接口 ........................................................................................................................................................................... 35
5.2.2 接口 ........................................................................................................................................................................... 35
5.2.3 接口 ........................................................................................................................................................................... 35
5.3 带优先级的事件 ............................................................................................................................................................ 36
5.3.1 接口 ........................................................................................................................................................................... 36
5.3.2 示例 ........................................................................................................................................................................... 36
5.4 检查事件状态 ............................................................................................................................................................... 36
5.4.1 接口............................................................................................................................................................................ 36
5.4.2 示例 ........................................................................................................................................................................... 37
5.5 查找当前正在运行的 even ............................................................................................................................................. 38
5.5.1 接口............................................................................................................................................................................ 38
5.5.2 注意 ........................................................................................................................................................................... 38
5.6 配置一次触发事件 ........................................................................................................................................................ 38
5.6.1 接口 ........................................................................................................................................................................... 38
5.7 手动激活事件 ............................................................................................................................................................... 38
5.7.1 接口 ........................................................................................................................................................................... 38
5.7.2 错误示例:使用 event_active()产生一个无休止的循环 .................................................................................................... 39
5.7.3 示例: 使用定时器来解决上面的问题的可选方案 ......................................................................................................... 39
5.7.4 示例: 使用 event_config_set_max_dispatch_interval()来解决上面的问题的可选方案 ...................................................... 40
5.8 优化公用超时 ............................................................................................................................................................... 40
5.8.1 接口 ........................................................................................................................................................................... 40
5.8.2 示例 ........................................................................................................................................................................... 41
5.9 从已清除的内存识别事件 .............................................................................................................................................. 41
5.9.1 接口 ........................................................................................................................................................................... 41
5.9.2 警告 ........................................................................................................................................................................... 41
5.9.3 示例 ........................................................................................................................................................................... 42
5.10 废弃的事件操作函数 ................................................................................................................................................... 42
5.10.1 接口 .......................................................................................................................................................................... 42
6 辅助类型和函数(Ref5_evutil.mht) ...................................................................................................................................... 43
6.1 基本类型 ....................................................................................................................................................................... 43
6.1.1 evutil_socket_t ............................................................................................................................................................. 43
6.1.2 标准整数类型 ............................................................................................................................................................. 43
6.1.3 各种兼容性类型 ......................................................................................................................................................... 44
6.2 定时器可移植函数 ........................................................................................................................................................ 44
6.2.1 接口 ........................................................................................................................................................................... 44
6.2.2 接口 ........................................................................................................................................................................... 45
6.2.3 接口 ........................................................................................................................................................................... 45
6.2.4 接口 ........................................................................................................................................................................... 45
6.2.5 示例 ........................................................................................................................................................................... 45
6.3 套接字 API 兼容性 ....................................................................................................................................................... 46
6.3.1 接口 ........................................................................................................................................................................... 46
6.3.2 接口 ........................................................................................................................................................................... 46
6.3.3 接口 ........................................................................................................................................................................... 46
6.3.4 接口 ........................................................................................................................................................................... 47
6.3.5 接口 ........................................................................................................................................................................... 47
6.3.6 接口 ........................................................................................................................................................................... 47
6.4 可移植的字符串操作函数 .............................................................................................................................................. 48
6.4.1 接口 ........................................................................................................................................................................... 48
6.4.2 接口 ........................................................................................................................................................................... 48
6.5 区域无关的字符串操作函数 .......................................................................................................................................... 48
6.5.1 接口 ........................................................................................................................................................................... 48
6.6 IPv6 辅助和兼容性函数.................................................................................................................................................. 48
6.6.1 接口 ........................................................................................................................................................................... 48
6.6.2 接口 ........................................................................................................................................................................... 49
6.6.3 接口 ........................................................................................................................................................................... 49
6.7 结构体可移植性函数 ..................................................................................................................................................... 50
6.7.1 接口 ........................................................................................................................................................................... 50
6.8 安全随机数发生器 ........................................................................................................................................................ 50
6.8.1 接口 ........................................................................................................................................................................... 50
6.8.2 接口 ........................................................................................................................................................................... 50
7 bufferevent:概念和入门(Ref6_bufferevent.mht) ................................................................................................................. 51
7.1 bufferevent 和 evbuffer................................................................................................................................................. 51
7.2 回调和水位 ................................................................................................................................................................... 52
7.3 延迟回调 ...................................................................................................................................................................... 52
7.4 bufferevent 的选项标志 ................................................................................................................................................. 53
7.5 与基于套接字的 bufferevent 一起工作 .......................................................................................................................... 53
7.5.1 创建基于套接字的 bufferevent ................................................................................................................................... 53
7.5.2 在基于套接字的 bufferevent 上启动连接..................................................................................................................... 54
7.5.3 通过主机名启动连接 .................................................................................................................................................. 55
7.6 通用 bufferevent 操作 .................................................................................................................................................. 57
7.6.1 释放 bufferevent ........................................................................................................................................................ 57
7.6.2 操作回调、水位和启用/禁用 ...................................................................................................................................... 58
7.6.3 操作 bufferevent 中的数据.......................................................................................................................................... 61
7.6.4 读写超时 .................................................................................................................................................................... 64
7.6.5 对 bufferevent 发起清空操作 ...................................................................................................................................... 64
7.7 类型特定的 bufferevent 函数 ........................................................................................................................................ 65
7.7.1 接口 ........................................................................................................................................................................... 65
7.7.2 接口 ........................................................................................................................................................................... 65
7.7.3 接口 ........................................................................................................................................................................... 65
7.7.4 接口........................................................................................................................................................................... 66
7.8 手动锁定和解锁 ............................................................................................................................................................ 66
7.8.1 接口 ........................................................................................................................................................................... 66
7.9 已废弃的 bufferevent 功能 ........................................................................................................................................... 66
7.9.1 接口 ........................................................................................................................................................................... 67
7.9.2 接口 ........................................................................................................................................................................... 67
7.10 Bufferevent:高级话题(Ref7_evbuffer.mht) .................................................................................................................. 68
7.10.1 成对的 bufferevent ................................................................................................................................................... 68
7.10.2 过滤 bufferevent ...................................................................................................................................................... 69
7.10.3 限制每次最大读/写 size............................................................................................................................................. 70
7.10.4 bufferevent 和速率限制 ............................................................................................................................................. 70
7.10.5 bufferevent 和 SSL..................................................................................................................................................... 74
8 evbuffer:缓冲 IO 实用功(Ref7_evbuffer.mht) ....................................................................................................................... 80
8.1 创建和释放 evbuffer..................................................................................................................................................... 80
8.1.1 接口 ........................................................................................................................................................................... 80
8. 2 evbuffer 与线程安全 ..................................................................................................................................................... 80
8.2.1 接口 ........................................................................................................................................................................... 80
8.3 检查 evbuffer .............................................................................................................................................................. 81
8.3.1 接口 ........................................................................................................................................................................... 81
8.3.2 接口 ........................................................................................................................................................................... 81
8.4 向 evbuffer 添加数据:基础 ......................................................................................................................................... 81
8.4.1 接口 ........................................................................................................................................................................... 81
8.4.2 接口 ........................................................................................................................................................................... 82
8.4.3 接口 ........................................................................................................................................................................... 82
8.4.4 示例 ........................................................................................................................................................................... 82
8.5 将数据从一个 evbuffer 移动到另一个 ........................................................................................................................... 82
8.5.1 接口 ........................................................................................................................................................................... 82
8.6 添加数据到 evbuffer 前面............................................................................................................................................. 83
8.6.1 接口 ........................................................................................................................................................................... 83
8.7 重新排列 evbuffer 的内部布局...................................................................................................................................... 83
8.7.1 接口 ........................................................................................................................................................................... 83
8.7.2 示例 ........................................................................................................................................................................... 83
8.7.3 提示 ........................................................................................................................................................................... 84
8.8 从 evbuffer 中移除数据 ................................................................................................................................................ 84
8.8.1 接口 ........................................................................................................................................................................... 84
8.9 从 evbuffer 中复制出数据............................................................................................................................................. 85
8.9.1 接口 ........................................................................................................................................................................... 85
8.9.2 示例 ........................................................................................................................................................................... 85
8.10 面向行的输入 ............................................................................................................................................................. 86
8.10.1 接口 ......................................................................................................................................................................... 86
8.10.2 示例 ......................................................................................................................................................................... 87
8.11 在 evbuffer 中搜索 ..................................................................................................................................................... 87
8.11.1 接口 ......................................................................................................................................................................... 87
8.11.2 接口 ......................................................................................................................................................................... 88
8.11.3 接口 ......................................................................................................................................................................... 88
8.12 检测数据而不复制 ...................................................................................................................................................... 89
8.12.1 接口 ......................................................................................................................................................................... 89
8.12.2 示例 ......................................................................................................................................................................... 90
8.12.3 注意 ......................................................................................................................................................................... 91
8.13 直接向 evbuffer 添加数据 ........................................................................................................................................... 91
8.13.1 接口 ......................................................................................................................................................................... 92
8.13.2 提示和警告 .............................................................................................................................................................. 92
8.13.3 示例 ......................................................................................................................................................................... 92
8.13.4 不好的示例 .............................................................................................................................................................. 93
8.14 使用 evbuffer 的网络 IO............................................................................................................................................. 94
8.14.1 接口 ......................................................................................................................................................................... 94
8.15 evbuffer 和回调........................................................................................................................................................... 94
8.15.1 接口 ......................................................................................................................................................................... 95
8.15.2 接口 ......................................................................................................................................................................... 95
8.15.3 示例 ......................................................................................................................................................................... 95
8.15.4 接口 ......................................................................................................................................................................... 96
8.15.5 接口 ......................................................................................................................................................................... 97
8.16 为基于 evbuffer 的 IO 避免数据复制 ......................................................................................................................... 97
8.16.1 接口 ......................................................................................................................................................................... 97
8.16.2 示例 ........................................................................................................................................................................ 97
8.17 添加文件到 evbuffer ................................................................................................................................................... 98
8.17.1 接口 ......................................................................................................................................................................... 99
8.17.2 警告 ......................................................................................................................................................................... 99
8.18
精细控制
file segments
................................................................................................................................................ 99
8.18.1 接口 ......................................................................................................................................................................... 99
8.18.2 接口 ....................................................................................................................................................................... 100
8.19 通过引用添加 evbuffer 到另一个 evbuffer .................................................................................................................. 100
8.19.1 接口 ....................................................................................................................................................................... 100
8.20 让 evbuffer 只能添加或者只能移除 ........................................................................................................................... 101
8.20.1 接口 ....................................................................................................................................................................... 101
8.21 废弃的 evbuffer 函数 ................................................................................................................................................ 101
8.21.1 废弃的接口 ............................................................................................................................................................ 101
8.21.2 废弃的接口 ............................................................................................................................................................ 102
9 连接监听器:接受 TCP 连接(Ref8_listener.mht) ............................................................................................................... 102
9.1 创建和释放 evconnlistener ......................................................................................................................................... 102
9.1.1 接口 ......................................................................................................................................................................... 102
9.1.2 连接监听回调 ........................................................................................................................................................... 104
9.2 启用和禁用 evconnlistener ......................................................................................................................................... 104
9.2.1 接口 ......................................................................................................................................................................... 104
9.3 调整 evconnlistener 的回调函数 ................................................................................................................................. 104
9.3.1 接口 ......................................................................................................................................................................... 104
9.4 检测 evconnlistener ................................................................................................................................................... 105
9.4.1 接口 ......................................................................................................................................................................... 105
9.5 侦测错误 ................................................................................................................................................................... 105
9.5.1 接口.......................................................................................................................................................................... 105
9.6 示例:回显服务器 ...................................................................................................................................................... 105
10 使用 libevent 的 DNS:高层和底层功能(Ref9_dns.mht).................................................................................................... 107
10.1 预备:可移植的阻塞式名字解析 ............................................................................................................................... 108
10.1.1 接口 ....................................................................................................................................................................... 108
10.1.2 示例:解析主机名,建立阻塞的连接 ...................................................................................................................... 111
10.2 使用 evdns_getaddrinfo()的非阻塞式名字解析 .......................................................................................................... 112
10.2.1 接口 ....................................................................................................................................................................... 112
10.2.2 示例:使用 evdns_getaddrinfo()的非阻塞查询............................................................................................................. 113
10.3 创建和配置 evdns_base ............................................................................................................................................ 115
10.3.1 接口 ....................................................................................................................................................................... 115
10.3.2 使用系统配置初始化 evdns .................................................................................................................................... 116
10.3.3 手动配置 evdns ...................................................................................................................................................... 118
10.3.4 库端配置 ................................................................................................................................................................ 119
10.4 底层 DNS 接口 ......................................................................................................................................................... 119
10.4.1 缺少的特征 ............................................................................................................................................................ 120
10.4.2 接口 ....................................................................................................................................................................... 120
10.4.3 DNS 错误码............................................................................................................................................................. 121
10.4.4 接口 ....................................................................................................................................................................... 122
10.5 挂起 DNS 客户端操作,更换名字服务器 ................................................................................................................... 122
10.6 DNS 服务器接口........................................................................................................................................................ 122
10.6.1 创建和关闭 DNS 服务器接口 .................................................................................................................................. 122
10.6.2 检测 DNS 请求 ....................................................................................................................................................... 123
10.6.3 响应 DNS 请求 ....................................................................................................................................................... 124
10.7 DNS 服务器示例......................................................................................................................................................... 126
10.8 废弃的 DNS 接口 ...................................................................................................................................................... 128
1
前言
(Ref0_meta.html )
Libevent 是用于编写高速可移植非阻塞 IO 应用的库
剩余128页未读,继续阅读
blond2005
- 粉丝: 2
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5