摘要:简述epoll的基础理论知识,方便理解libevent。 流、IO操作、阻塞 流: 文件、套接字、管道 可以进行I\O操作的内核对象。 流的入口:文件描述符(fd) IO操作 所有对流的读写操作,我们都可称作IO操作。 当一个流中再没有数据,read的时候,或者流中已经写满数据时,在write,我们
阅读全文
摘要:Libevent是c语言编写的一个开源库。 Libevent内部实现也是使用poll、epoll、select等,所以它可以监听任何的一个文件描述符。 Libevent主要用于网络程序中,可以使用Libevent编写出高并发服务器处理模型。 Libevent本身就是一个Reactor模型,理解Rea
阅读全文
摘要:libevent_信号事件 整体流程: 1.创建一个事件集合。 定义一个结构struct event_base *base = event_base_new(); 手动释放event_base_free(); 2.创建一个事件。 struct event ev; 3.将事件和信号绑定在一起。 eve
阅读全文
摘要:libevent_IO事件 管道是通过文件描述符读写,我们可以监听文件描述符是否可读,一旦有进程往管道中写数据,另一端就是可读,可以被libevent监听到。libevent监听到后,可以调用函数将数据读取出来。有名管道随便读写,读和写是通过fd,将这个fd添加到集合中,libevent可以监听这个
阅读全文
摘要:学习libevent,首先需要在Linux平台下安装该软件。 安装libevent大致步骤如下: 1 下载源码包。 2 解压源码包。 3 执行脚本 configure 。 4 编译源代码。 5 安装库文件、头文件等内容。 6 编写测试demo,测试是否安装成功。 下面对每一步进行展开介绍: 1 下载
阅读全文