libevent
文章平均质量分 74
吓人的猿
专注Linux系统开发,网络编程,服务后台开发
展开
-
Libevent应用 (零) Libevent简单介绍与安装
高并发libevent 现在高性能网络服务器基本都是异步I/O模式构建的,而Libevent就是对select、poll、epoll等各类异步模式接口的封装,通过设置回调函数的方式,在监听文件描述符和套接字读写事件的同时,还兼任定时器和信号接收的管理工作。 所以Libevent对高性能服务器后台开发、跨平台开发、网络开发都具有很大的参考学习价值。官方主页显示很多的项目都用到了Libevent库...原创 2018-03-03 16:50:27 · 414 阅读 · 0 评论 -
Libevent应用 (一) 建立event_base
1 建立event_base event_base算是Libevent最基础、最重要的对象,因为修改配置、添加事件等,基本都需要将它作为参数传递进去。 1.1创建默认的event_base 这个对象通过event_base_new创建:#include <event2/event.h>struct event_base *event_base_new(void); even...原创 2018-03-03 16:52:08 · 455 阅读 · 0 评论 -
Libevent应用 (二) 与事件一起工作
2 与事件一起工作 libevent的基本操作单元是事件。每个事件代表一组条件的集合,这些条件包括: (1)文件描述符已经就绪,可以读取或者写入 (2)文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发IO) (3)超时事件 (4)发生某信号 (5)用户触发事件 所有事件具有相似的生命周期。调用libevent函数设置事件并且关联到event_base之后,事件进入“已初始...原创 2018-03-03 16:54:21 · 377 阅读 · 0 评论 -
Libevent应用 (三) 数据缓冲
3 数据缓冲 很多时候,除了响应事件之外,应用还希望做一定的数据缓冲。比如说,写入数据的时候,通常的运行模式是: (1)决定要向连接写入一些数据,把数据放入到缓冲区中 (2)等待连接可以写入 (3)写入尽量多的数据 (4)记住写入了多少数据,如果还有更多数据要写入,等待连接再次可以写入 这种缓冲IO模式很通用,libevent为此提供了一种通用机制,即bufferevent。...原创 2018-03-03 16:55:23 · 2010 阅读 · 0 评论 -
Libevent应用 (四) 辅助类型和函数
4 辅助类型和函数4.1 基本类型4.1.1 evutil_socket_t 在除Windows之外的大多数地方,套接字是个整数,操作系统按照数值次序进行处理。然而,使用Windows套接字API时,socket具有类型SOCKET,它实际上是个类似指针的句柄,收到这个句柄的次序是未定义的。在Windows中,libevent定义evutil_socket_t类型为整型指针,可以处理socket...原创 2018-03-03 16:56:50 · 493 阅读 · 0 评论 -
Libevent应用 (五) 连接监听器,接收tcp连接
5 连接监听器,接收tcp连接5.1 创建和释放evconnlistener#include <event2/listener.h>struct evconnlistener *evconnlistener_new_bind(struct event_base *base, evconnlistener_cb cb, void *ptr, unsigned flags, i...原创 2018-03-03 16:58:31 · 744 阅读 · 0 评论 -
Libevent应用(六)从bufferevent中取出evbuffer
6 从bufferevent中取出evbufferstruct evbuffer* bufferevent_get_input(struct bufferevent *bufev); //取出输入缓冲区struct evbuffer* bufferevent_get_output(struct bufferevent *bufev); //取出输出缓冲区/*对evbuffer的操作*/...原创 2018-03-03 17:12:35 · 939 阅读 · 0 评论