![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
libevent
cqg657293550
这个作者很懒,什么都没留下…
展开
-
libevent 学习笔记 四
目的:测试event_base_loop()函数 方法: 作为服务器端,当有数据到来的时候,立刻关闭base #include #include #include #include #include #include void cb(evutil_socket_t sock,short what,void *arg) { printf("fun转载 2016-11-04 17:23:56 · 226 阅读 · 0 评论 -
libevent 学习笔记 三
事件处理流程 当应用程序向libevent注册一个事件后,libevent内部是怎么样进行处理的呢? 1:首先应用策划年供需准备并初始化event,设置好事件类型和回调函数 2:向libevent添加该事件event。对于定时事件,libevent使用一个小根堆管理,key为超时时间; 对于Signal和I/O事件,libevent将其放入到等待链表中,这是一个双向链表结构 3:转载 2016-11-04 16:28:15 · 233 阅读 · 0 评论 -
libevent 学习笔记 二
定时器基本应用 1:首先初始化libevent库,并保存返回的指针 struct event_base *base=event_base_new(); 2:定义两个结构体,分别代表事件和定时器值 struct event timeout; //定时器事件 struct timeval tv; //定时器值 3:将事件和event_base绑定 event_assign(转载 2016-11-04 15:55:24 · 315 阅读 · 0 评论 -
libevent 学习笔记 一
Reactor模式框架 5个关键的参与者 1:描述符 由操作系统提供,用于识别每一个事件,如Socket描述符,文件描述符等 2:同步事件分离器 是一个函数,用来等待一个或多个事件的发生。调用者会被阻塞,直到分离器分离的描述符集上有事件发生 3:事件处理器接口 由一个或多个模块函数组成的接口。这些模板函数描述了和应用程序相关的对某个事件的操作 4:具体的事件处理器转载 2016-11-04 15:53:58 · 229 阅读 · 0 评论