当前位置: 首页 > news >正文

libevent入门篇

文章目录

  • 概述
    • 下载
    • 编译
    • 目录
      • sample
      • hello-world
        • 初始化
        • 创建监听器
        • 处理连接
        • 处理信号
      • build
  • 小结

概述

libevent 和 libev 都是由 c 实现的异步事件库;注册异步事件,检测异步事件,根据事件的触发先
后顺序,调用相对应回调函数处理事件;
处理的事件包括:网络 io 事件、定时事件以及信号事件;
libevent 和 libev 主要封装了异步事件库与操作系统的交互;让用户无需关注平台检测处理事件的
机制的差异,只需关注事件的具体处理;

下载

下载

上边是使用git下载流程。没安装git的,建议安装。

编译

编译
我是在linux服务器上编译的,用的这种方式,用其他平台的,可以参考git上windows上的即可;如下图:
windows

目录

编译后的目录,如下图:
编译后的目录
这么多文件,怎么看呢?

sample

一般来说,看到一个开源项目,首先去看看demo;对于libevent来说,sample下面就是它的demo文件。如下图:
sample下的文件

hello-world

简单点,看一个代码或者写一个程序,都是从"hello,world"开始,接下来看看hello-world.c。
对于一个简单的tcp服务器,一般都有初始化,创建监听器,处理连接,发送消息,处理信号。

初始化

初始化

创建监听器

创建监听器

处理连接

处理连接

处理信号

信号函数
处理函数
这个设置了一个信号事件,用于在接到SIGINT信号时优雅的突出。当接收到这个信号时,程序会等待两秒钟后再退出,以确保所有的事件都被处理完毕。

build

build
找到这个目录,可以看到编译后的文件。可以执行linux下的文件执行,即可。
hello-world执行
按下ctrl+c看看,
ctrl+c
其他的,就没了 。

小结

这篇主要写了libevent这个开源库,下载,编译,以及用hello-world.c入门。好了,入门就写到这了。有兴趣,一起学习学习。OK,结束。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL中,除了使用LIKE进行模糊搜索外,还有其他几种方法可以执行搜索操作
  • 【CTFHub】文件上传漏洞详解!
  • java项目中添加SDK项目作为依赖使用(无需上传Maven)
  • C++基础知识:构造函数的分类和调用,有参构造和无参构造,有参构造和无参构造,三种调用方式:括号法,显示法,隐式转换法,以及相关代码演示和注意事项
  • 文件上传题目练习
  • 书生大模型实战营--L1关卡-Llamaindex RAG实践
  • 正则采集器之三——前端搭建
  • C#插件 调用存储过程(输出参数类型)
  • Ubuntu开机自启配置(基于service:以ROS和docker为例)
  • 计算机毕业设计选题推荐-零食批发商仓库管理系统-Java/Python项目实战
  • Zookeeper源码剖析-ZAB协议选举流程
  • Oracle核心进程详解并kill验证
  • js中map属性
  • vue2 前端实现pdf在线预览(无插件版)
  • “八股文”在程序员面试中的作用及其对实际工作的影响
  • avalon2.2的VM生成过程
  • css属性的继承、初识值、计算值、当前值、应用值
  • echarts的各种常用效果展示
  • express + mock 让前后台并行开发
  • Github访问慢解决办法
  • JS+CSS实现数字滚动
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • rc-form之最单纯情况
  • scala基础语法(二)
  • 大主子表关联的性能优化方法
  • 工程优化暨babel升级小记
  • 开源SQL-on-Hadoop系统一览
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端_面试
  • 前端设计模式
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 容器镜像
  • 如何在招聘中考核.NET架构师
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #NOIP 2014# day.2 T2 寻找道路
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (39)STM32——FLASH闪存
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)fgets与fputs函数详解
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (不用互三)AI绘画工具应该如何选择
  • (计算机网络)物理层
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (四)模仿学习-完成后台管理页面查询
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)清华学霸演讲稿:永远不要说你已经尽力了