zl程序教程

您现在的位置是:首页 > 

当前栏目

Libevent(二)

libevent
2023-06-13 09:11:15 时间

Libevent提供了一个基于缓冲IO的抽象。这个抽象就是bufferevent。Bufferevent提供了自动填充和输出的缓冲区。用户不会直接和IO打交道,而是从输入缓冲区读,在输出缓冲区写。

一旦用bufferevent_socket_new初始化,bufferevent结构体可以重复使用bufferevent_enable()和bufferevent_disable()。你需要用bufferevent_read()和bufferevent_write()进行读写,而不是直接用socket进行读写。

当读被启用,bufferevent会试图从文件描述符读数据并调用回调函数。The write callback is executed whenever the

output buffer is drained below the write low watermark, which is 0 by

Default.

Libevent可以用来生成定时器,当达到一定的时间后调用回调函数。Evtimer_new函数返回一个事件结构体,用来做定时器。要激活这个定时器,调用evtimer_add()。调用evtimer_del可以禁用定时器。

Libevent为RPC提供了一个框架,可以用来处理所有数据的marshaling and unmarshaling。