【libevent】libevent库学习总结(二)——编程步骤
一、libevent编程步骤
0、分配并初始化event_base,两种方法
0.1 event_base_new:线程安全,代替event_init;
0.2 event_init:线程不安全,不推荐使用,仅仅是为了向后兼容
1、创建event,设置event的回调函数,加入event_base,两种方法
1.1 event_new:函数内部分配event,并加入参数指定的event_base中;
1.2 event_set + event_base_set:函数外创建好event,作为参数传给event_set中current_base(一个全局event_base),然后通过event_base_set来将current_base改为参数指定的event_base
2、将事件添加到待处理事件集合中
event_add
3、开始事件循环,两种方法
event_base_dispatch或event_base_loop;
event_base_dispatch是对event_base_loop的简单封装
4、IO缓冲的使用
4.1 在开始事件循环之前,创建bufferevent,加入event_base中,并设置读写超时
bufferevent_new —>bufferevent_base_set —>bufferevent_settimeout
4.2 在使用bufferevent_new创建bufferevent的同时,指定回调函数,一般在回调函数中使用bufferevent_read和bufferevent_write
4.3 在上述“1、”的回调函数中,设置缓冲区读写时使用到的文件描述符,并使能
bufferevent_setfd —> bufferevent_enable
二、流程图
【libevent】libevent库学习总结(二)——编程步骤相关推荐
- HandsFree——OpenRE库学习(二)
HandsFree--OpenRE库学习(二) Board类介绍 Board类对硬件进行抽象,封装了STM32F1和F4的底层配置函数,使得上层功能包的开发变得简洁. Board类的定义如下: cla ...
- stm32HALL库学习之二
文章目录 stm32定时器 通过代码介绍中断 串口和定时器的中断回调函数 后记. stm32定时器 定时器的组成包括四部分:时钟选择单元,时基单元 ,输入捕获 ,输出比较. 一,时钟选择单元: 内部时 ...
- 【Python之pymysql库学习】二.游标cursor的相关知识(保姆级图文+实现代码)
目录 读取的数据类型 读取的数据转为字典类型效果 读取的数据转为字典类型实现思路 读取的数据转为字典类型实现代码 关于游标的重置 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新 ...
- muduo网络库学习(二)对套接字和监听事件的封装Channel
muduo对描述符fd,需要监听的事件events,当fd被激活调用的可读/可写/关闭/错误回调函数进行了封装,实现在Channel类中,Poller监听的其实就是一个个Channel对象,Chann ...
- GIS开源库GEOS库学习教程(二):geos中的几何图形(Geometry)
前言 上一节我们学过了GEOS库的介绍和环境编译及示例代码,在这一节我们将了解一下geos中的各种几何图形类,它们大部分都是从Geometry类派生的.而几何图形(Geometry)是geos里面 ...
- OpenCV的viz库学习(二)
学习目标 这次学习中将学会下面三部分: 如何使用makeTransformToGlobal计算位姿 如何使用makeCameraPose和Viz3d :: setViewerPose 如何通过轴和视锥 ...
- libevent事件驱动库的学习视频教程
这里是上传到bilibili上, 录制的libevent事件驱动的视频教程,当然这个教程中的libevent是简化版的,不过正因为是简化版的,所以更有利于学习事件驱动的核心,后期会退出libevnt最 ...
- muduo网络库学习(四)事件驱动循环EventLoop
muduo的设计采用高并发服务器框架中的one loop per thread模式,即一个线程一个事件循环. 这里的loop,其实就是muduo中的EventLoop,所以到目前为止,不管是Polle ...
- C++后端开发程序员应该彻底搞懂的【libevent网络库】,libevent组件构成以及编程要领丨Linux服务器开发丨服务端编程
90分钟搞懂libevent网络库 1. 服务端事件组成 2. libevent组件构成以及编程概要 3. memcached是如何使用libevent 视频讲解如下,点击观看: C++后端开发程序员 ...
最新文章
- matlab未定义函数lp,matlab未定义函数或变量(附上源代码)
- Hack Into Linux Packet Schedulers
- 高等数学:第六章 定积分的应用(1)定积分的应用 平面图形的面积 立体体积
- 创建函数查找上级_一文秒懂JavaScript中对象的7种创建方式
- linux检查运行程序文件,LINUX定时检查程序运行状态
- Linq 数据库操作(增删改查)
- 深度学习目标检测系列:faster RCNN实现|附python源码
- 【Python】一些容易忽略的知识点
- 写入多个表_制作属于自己的教学工作表
- mysql修改默认的存储引擎
- window 装oracle,在Window下安装Oracle
- 比芒果广告还要专业的广告管理系统:Keymob
- cherry MX-BOARD 3.0 拆解
- 基于深度学习的Depth and Ego-Motion Estimation
- C语言-求一元二次方程的解-你是否会了呢?
- Makefile: 参数-I (大写字母i), -l (小写字母l) 和-L的区别
- 一个安全的邮件习惯如何练成的
- 火狐开发----Web开发者工具
- vray for 3dmax分布式渲染故障疑难解答!
- python工程师工资一般多少-Python工程师的薪资到底有多高