LibEvent中文帮助文档

  LibEvent


快速可移植非阻塞式网络编程

  

修订历史

版本

日期

作者

备注

V1.0

2016-11-15

周勇

Libevent编程中文帮助文档

 

文档是2009-2012年由Nick-Mathewson基于Attribution-Noncommercial-Share Alike许可协议3.0创建,未来版本将会使用约束性更低的许可来创建.

此外,本文档的源代码示例也是基于BSD"3条款""修改"条款.详情请参考BSD文件全部条款.本文档最新下载地址:

英文:http://libevent.org/

中文:http://download.csdn.net/detail/zhouyongku/9700438

请下载并运行"gitclonegit://github.com/nmathewson/libevent- book.git"获取本文档描述的最新版本源码.




目录:



1.关于本文档


2.示例代码注意事项


3.一个小的异步IO例子

3.1怎样才能更方便?(Windows下怎么弄)

3.2这一切效率如何,当真?


4.正文前页

4.1从1000英尺看LibEvent

4.2库

4.3头文件

4.4如果需要使用老版本libevent

4.4.1版本状态告知


5.设置LibEvent库

5.1LibEvent日志消息

5.2处理致命错误

5.3内存管理

5.4线程和锁

5.5调试锁的使用

5.6调试事件使用

5.7检查LibEvent的版本信息

5.8释放LibEvent全局结构体


6.创建Event_base

6.1创建默认的Event_base

6.2创建复杂的Event_base

6.3检查Event_base的后台方法

6.4重新分配一个Event_base

6.5设置Event_base优先级

6.6Fork()之后重新初始化一个Event_base

6.7废弃的Event_base函数


7.事件循环

7.1运行循环

7.2停止循环

7.3检查事件

7.4检查内部时间缓存

7.5转存Event_base状态

7.6每个event_base上运行一个event

7.7废弃的事件回调函数


8.处理事件

8.1构造事件对象

8.1.1事件标志

8.1.2关于事件持久性

 8.1.3创建一个用本身作为回调函数参数的event

8.1.4超时事件

8.1.5构造信号事件

8.1.6不用堆分配来设置事件

8.2使事件未决和非未决

8.3事件优先级

8.4检查事件状态

8.5查找当前运行事件

8.6配置一次性事件

8.7手动激活事件

8.8优化通用超时

8.9从已清除的内存中识别事件

8.10废弃的事件操作函数


9.辅助类型和函数

9.1基本类型

9.1.1Evuitl_socket_t

9.1.2标准整数类型

9.1.3各种兼容性类型

9.2定时器可移植函数

9.3套接字API兼容性

9.4可移植的字符串操作函数

9.5区域无关的字符串操作函数

9.6IPv6辅助和兼容性函数

9.7结构体可移植函数

9.8安全随机数发生器


10.Bufferevent概念和入门

10.1Bufferevent和Evbuffer

10.2回调和水位

10.3延迟回调

10.4Bufferevent的选项标志

10.5与套接字的Bufferevent一起工作

10.5.1创建基于套接字的Eventbuffer

10.5.2在套接字的Bufferevent上启动连接

10.5.3通过主机名启动连接

10.6通用Bufferevent操作

10.6.1释放Bufferevent

10.6.2操作回调、水位、启用、禁用

10.6.3操作Bufferevent中的数据

10.6.4读写超时

10.6.5对Bufferevent发起清空操作

10.7类型特定的Bufferevent函数

10.8手动锁定和解锁

10.9已废弃的Bufferevent功能


11.高级话题

11.1成对的Bufferevent

11.2过滤Bufferevent

11.3限制最大单个读写大小

11.4Bufferevent和速率限制

11.4.1速率限制模型

11.4.2为Bufferevent设置速率限制

11.4.3为一组Eventbuffer设置速率限制

11.4.4检查当前速率限制

11.4.5手动调整速率限制

11.4.6设置速率限制组的最小可能共享

11.4.7  速率限制实现的限制

11.5Bufferevent和SSL

11.5.1创建和使用基于SSL的Bufferevent

11.5.2线程和OpenSSL的一些说明


12.Evbuffer IO实用功能

12.1创建或释放一个Bvbuffer

12.2Evbuffer和线程安全

12.3检查Evbuffer

12.4向Evbuffer添加数据:基础

12.5将数据从一个Evbuffer移动到另一个

12.6添加数据到Evbuffer的前面

12.7重新排列Evbuffer的内部布局

12.8从evbuffer移除数据

12.9从Evbuffer中复制出数据

12.10面向行的输入

12.11在Evbuffer中搜索

12.12检测数据而不复制

12.13直接向Evbuffer添加数据

12.14使用Evbuffer的网络IO

12.15Evbuffer和回调

12.16为基于evbuffer的IO避免数据复制

12.17增加一个文件到Evbuffer

12.18细粒度控制文件段

12.19添加一个Evbuffer引用到另一个Evbuffer

12.20让Evbuffer只能添加和删除

12.21废弃的Evbuffer函数


13.连接监听器:接受一个TCP连接

13.1创建或释放一个evconnlistener

13.1.1可识别的标志

13.1.2连接监听器回调

13.2启用和禁用evconnlistener

13.3调整evconnlistener的回调函数

13.4检查evconnlistener

13.5检查错误

13.6示例程序:一个echo服务器


14.使用LibEvent的DNS:高和低层功能

14.1正文前页:可移植的阻塞式名称解析

14.2使用evdns_getaddrinfo()进行非阻塞名字解析

14.3创建和配置evdns_base

14.3.1使用系统配置初始化evdns

14.3.2手动配置evdns

14.3.3库端配置


15.底层DNS接口

15.1挂起DNS客户端操作,更换名字服务器


16.DNS服务器接口

16.1创建和关闭DNS服务器

16.4DNS服务器示例


17.废弃的DNS接口



18.LibEvent编程示例

18.1Event客户端服务器示例

18.1.1客户端

18.1.2服务器端

18.1.3编译源码

18.1.4脚本文件

18.1.4运行测试

18.2BufferEvent客户端服务器示例

18.2.1客户端

18.2.2服务器端

18.2.3编译源码

18.2.4脚本文件

18.2.4运行测试

 

 

 





你可能感兴趣的:(LibEvent)