libevent源码阅读笔记
llongint
这个作者很懒,什么都没留下…
展开
-
libevent--学习使用struct event结构体进行工作-2
event_add(…) 在创建事件后,需要将事件(event)加入到event_base,使其成为未决事件,event_add()的函数源码摘抄如下: int event_add(struct event *ev, const struct timeval *tv) { int res; /* 1.检查参数是否为空 */ if (EVUTIL_FAILURE_CHECK(!ev-...原创 2019-05-03 18:49:50 · 227 阅读 · 0 评论 -
libevent--学习使用struct event结构体进行工作-3
event_base_dispatch(…) int event_base_dispatch(struct event_base *event_base){ return (event_base_loop(event_base, 0)); } event_base_loop(…) int event_base_loop(struct event_base *base, int flags){ ...原创 2019-05-07 15:12:59 · 163 阅读 · 0 评论 -
libevent--学习使用struct bufferevent
写入数据的时候通常的运行模式是 1.决定要向连接写入一些数据,把数据放入到缓冲区中, 2.等待连接可以写入, 3.写入尽量多的数据, 4.记住写入了多少数据,如果还有更多数据要写入,等待连接再次可以写入 libevent为此提供了一个通用的机制即bufferevent,在读取或者写入了足够量的数据之后调用用户提供的回调 基于套接字的 bufferevent:使用 event_*接口作为后端...原创 2019-05-07 18:22:21 · 1007 阅读 · 1 评论 -
libevent -- 缓冲IO:evbuffer
原文:http://www.wangafu.net/~nickm/libevent-book/Ref7_evbuffer.html libevent 的 evbuffer 实现了为向后面添加数据和从前面移除数据而优化的字节队列 1. 创建和释放 evbuffer 1.1 创建 struct evbuffer *evbuffer_new(void) { struct evbuffer *...翻译 2019-05-08 12:53:26 · 386 阅读 · 0 评论 -
bufferevent_socket_new()返回NULL
1.问题 我有一段代码时这样写的,可以通过检测: //为这个客户端分配一个 bufferevent,释放时关闭套接字,使用锁会失败?? struct bufferevent *bev = bufferevent_socket_new(base, fd,BEV_OPT_CLOSE_ON_FREE); assert(bev !=NULL); 但是当我加上标志BEV_OPT_T...原创 2019-05-13 13:00:17 · 3703 阅读 · 3 评论