一、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库学习总结(二)——编程步骤相关推荐

  1. HandsFree——OpenRE库学习(二)

    HandsFree--OpenRE库学习(二) Board类介绍 Board类对硬件进行抽象,封装了STM32F1和F4的底层配置函数,使得上层功能包的开发变得简洁. Board类的定义如下: cla ...

  2. stm32HALL库学习之二

    文章目录 stm32定时器 通过代码介绍中断 串口和定时器的中断回调函数 后记. stm32定时器 定时器的组成包括四部分:时钟选择单元,时基单元 ,输入捕获 ,输出比较. 一,时钟选择单元: 内部时 ...

  3. 【Python之pymysql库学习】二.游标cursor的相关知识(保姆级图文+实现代码)

    目录 读取的数据类型 读取的数据转为字典类型效果 读取的数据转为字典类型实现思路 读取的数据转为字典类型实现代码 关于游标的重置 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新 ...

  4. muduo网络库学习(二)对套接字和监听事件的封装Channel

    muduo对描述符fd,需要监听的事件events,当fd被激活调用的可读/可写/关闭/错误回调函数进行了封装,实现在Channel类中,Poller监听的其实就是一个个Channel对象,Chann ...

  5. GIS开源库GEOS库学习教程(二):geos中的几何图形(Geometry)

    前言   上一节我们学过了GEOS库的介绍和环境编译及示例代码,在这一节我们将了解一下geos中的各种几何图形类,它们大部分都是从Geometry类派生的.而几何图形(Geometry)是geos里面 ...

  6. OpenCV的viz库学习(二)

    学习目标 这次学习中将学会下面三部分: 如何使用makeTransformToGlobal计算位姿 如何使用makeCameraPose和Viz3d :: setViewerPose 如何通过轴和视锥 ...

  7. libevent事件驱动库的学习视频教程

    这里是上传到bilibili上, 录制的libevent事件驱动的视频教程,当然这个教程中的libevent是简化版的,不过正因为是简化版的,所以更有利于学习事件驱动的核心,后期会退出libevnt最 ...

  8. muduo网络库学习(四)事件驱动循环EventLoop

    muduo的设计采用高并发服务器框架中的one loop per thread模式,即一个线程一个事件循环. 这里的loop,其实就是muduo中的EventLoop,所以到目前为止,不管是Polle ...

  9. C++后端开发程序员应该彻底搞懂的【libevent网络库】,libevent组件构成以及编程要领丨Linux服务器开发丨服务端编程

    90分钟搞懂libevent网络库 1. 服务端事件组成 2. libevent组件构成以及编程概要 3. memcached是如何使用libevent 视频讲解如下,点击观看: C++后端开发程序员 ...

最新文章

  1. matlab未定义函数lp,matlab未定义函数或变量(附上源代码)
  2. Hack Into Linux Packet Schedulers
  3. 高等数学:第六章 定积分的应用(1)定积分的应用 平面图形的面积 立体体积
  4. 创建函数查找上级_一文秒懂JavaScript中对象的7种创建方式
  5. linux检查运行程序文件,LINUX定时检查程序运行状态
  6. Linq 数据库操作(增删改查)
  7. 深度学习目标检测系列:faster RCNN实现|附python源码
  8. 【Python】一些容易忽略的知识点
  9. 写入多个表_制作属于自己的教学工作表
  10. mysql修改默认的存储引擎
  11. window 装oracle,在Window下安装Oracle
  12. 比芒果广告还要专业的广告管理系统:Keymob
  13. cherry MX-BOARD 3.0 拆解
  14. 基于深度学习的Depth and Ego-Motion Estimation
  15. C语言-求一元二次方程的解-你是否会了呢?
  16. Makefile: 参数-I (大写字母i), -l (小写字母l) 和-L的区别
  17. 一个安全的邮件习惯如何练成的
  18. 火狐开发----Web开发者工具
  19. vray for 3dmax分布式渲染故障疑难解答!
  20. python工程师工资一般多少-Python工程师的薪资到底有多高

热门文章

  1. OpenCV(项目)车牌识别3 -- 模板匹配
  2. python可视化案例书籍推荐_这5款Python可视化神器,总有一款适合你!
  3. 在Ubuntu 14.04 64bit上安装python-pyqt5软件包(python 2.7)
  4. blender动画全面学习教程
  5. linux内存管理 之 内存节点和内存分区(Zone)
  6. 读书:历史 -- 奥斯曼帝国六百年
  7. ceph osd混合部署和普通部署
  8. laravel5.8的使用
  9. 在vue中使用babel-polyfill
  10. cookie 和session 的区别详解