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,结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267190.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Test】一篇文章带你深入详细了解 QWidget 的属性

文章目录 1. 初步认识控件 QWidget2. QWidget2.1 enable 属性2.2 geometry 属性2.3 WindowFrame 的影响2.4 windowTitle 属性2.5 windowIcon 属性2.6 使用 qrc 文件管理资源2.7 QWidget 控件的 windowOpacity 属性2.8 QWidget 的 cursor 属性2.9 QWidget 的 font 属性2.10 QWid…

项目管理中的常用工件(二):可视化工件

项目管理中的常用工件(二):可视化工件 亲和图(affinity diagram)因果图(cause-and-effect diagram)直方图(histogram)流程图(flowchart)散点图&am…

【反证法】932. 漂亮数组

本文涉及知识点 分治 数学 反证法 LeetCode932. 漂亮数组 如果长度为 n 的数组 nums 满足下述条件&#xff0c;则认为该数组是一个 漂亮数组 &#xff1a; nums 是由范围 [1, n] 的整数组成的一个排列。 对于每个 0 < i < j < n &#xff0c;均不存在下标 k&#x…

Sip for Mac:强大的屏幕取色软件

Sip for Mac是一款功能强大的屏幕取色工具软件&#xff0c;专为设计师、开发者和创作者打造。这款软件以其精准的取色功能和丰富的颜色管理选项而备受好评。 Sip的核心功能是提供多种取色工具&#xff0c;包括拾色器、取色板和屏幕取色等&#xff0c;使用户能够轻松地从屏幕上…

掌握AJAX技术:从基础到实战

文章目录 **引言****1. 什么是AJAX&#xff1f;****2. AJAX的工作原理**AJAX 示例使用 Fetch API 实现 AJAX **3. 如何在项目中使用AJAX****4. 处理AJAX请求的常见问题****5. AJAX与JSON的结合****6. 使用AJAX框架和库****7. 实战&#xff1a;创建一个动态表单****8. AJAX中的事…

PyQt5 + selenium,自动票务工具,演唱会门票,学习使用

PyQt5 selenium&#xff1b;在damai工具的基础上加入了UI界面&#xff0c;并将应用做了打包工作&#xff0c;主要是方便不会/不想折腾环境的用户使用&#xff0c;抢票的核心代码来自由于原作者不再维护&#xff0c;自己修改了部分代码。 安装教程 解压安装包到任意位置&…

基于Cobbler实现多版本系统批量部署

一、实验题目 基于Cobbler实现多版本系统批量部署 二、实验目的 通过Cobbler&#xff0c;实验旨在实现无需人工干预即可自动安装多个版本的操作系统。这可以大大提高机房设备或服务器集群的部署效率&#xff0c;减少人力成本和操作错误。 三、实验环境 centos7.9并安装Cob…

科研指标精准管理,构建智能可视化的科研生态系统

随着大数据、人工智能技术的发展&#xff0c;许多学科的现代化发展需求增强&#xff0c;科研领域产生的数据量急剧增加&#xff0c;传统的数据处理方式已经无法满足科研工作的需求。如何有效管理、分析和展示这些数据&#xff0c;成为科研工作的关键。 而可视化技术可以将复杂…

如何选择财税RPA解决方案

随着大数据、物联网、人工智能以及RPA等新兴技术的迅猛发展&#xff0c;每个企业都面临着巨大的行业和技术挑战。财务作为企业运营管理的核心&#xff0c;其数字化转型成为众多企业提升管理效能和实现高质量发展的先行路径。随着RPA技术应用在财务领域的不断深入&#xff0c;越…

WordPress主题追格企业官网主题免费开源版V1.1.6

追格企业官网主题免费开源版由追格开发的一款开源wordpress主题&#xff0c;专为企业建站和追格企业官网小程序&#xff08;开源版&#xff09;PC配套而设计&#xff0c;功能集新闻动态、留言反馈、产品与服务、公司简介、联系我们等模块。

Kube-OVN 混合网络场景最佳实践

在近期的技术分享中&#xff0c;灵雀云技术专家刘梦馨与现场网络专家深入探讨了Kube-OVN在混合网络场景下的最佳实践。本次分享详细介绍了Overlay和Underlay网络的特点及其在实际应用中的混用场景&#xff0c;并展示了Kube-OVN项目如何通过自身的解决方案应对混合网络的挑战。以…

web服务器dns服务器配置服务

1.搭建一个nfs服务器&#xff0c;客户端可以从该服务器的/share目录上传并下载文件 server服务器&#xff1a; 创建 /share目录&#xff0c;并且编辑/etc/exports文件 更改目录权限为755&#xff1a; 755权限码的含义是&#xff1a; 文件所有者&#xff08;第一位数字7&…

永劫无间手游攻略:快速升级攻略大全!云手机加速辅助教程!

在永劫无间这款竞技游戏中&#xff0c;快速提升等级和通行证是每个玩家追求的目标。通过合理的模式选择、任务完成以及使用高效的辅助工具&#xff0c;玩家可以更快速地达到这一目标。以下是详细的升级策略和辅助工具介绍。 1. 天选之人模式&#xff1a; 天选之人模式是永劫无间…

算法导论 总结索引 | 第五部分 第二十章:van Emde Boas树

1、一些支持优先队列操作的 数据结构,如第6章的二叉堆、第13章的红黑树 和 第19章的斐波那契堆。在这几种数据结构中, 不论是最好情况 还是 摊还情况, 至少有一项重要操作 只需要 O(n lgn) 时间 由于这些数据结构 都是基于关键字比较 决定的&#xff0c;因此, 8.1节中的下界 Ω…

【React】详解样式控制:从基础到进阶应用的全面指南

文章目录 一、内联样式1. 什么是内联样式&#xff1f;2. 内联样式的定义3. 基本示例4. 动态内联样式 二、CSS模块1. 什么是CSS模块&#xff1f;2. CSS模块的定义3. 基本示例4. 动态应用样式 三、CSS-in-JS1. 什么是CSS-in-JS&#xff1f;2. styled-components的定义3. 基本示例…

【leetcode 详解】生成特殊数字的最少操作【中等】(C++思路精析)

题目见下&#xff1a; 测试数据: 解题思路笔记&#xff1a; 最初拿到这道题是很蒙的&#xff0c;联想不到什么数据结构的模型&#xff08;肯定是笔者积累太少了&#xff09;&#xff0c;甚至惯性地想怎么实现“删除数字”的操作&#xff1a;在原字符串中抽出一个字符然后将剩…

面试 SQL整理 常见的SQL面试题:大厂经典60题(一)

目录 SQL基础知识整理: 数据库基础知识 为什么要使用数据库 数据保存在内存 数据保存在文件 数据保存在数据库 什么是SQL&#xff1f; 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 MySQL的binlog有有几种录入格式&#xff1f;分别有什么区别&…

ElasticSearch(五)— 文本分析与分词

一、文本分析 文本分析( analysis )是在文档被发送并加入倒排索引之前&#xff0c;Elasticsearch 在其主体上进行的操作。在文档被加入索引之前&#xff0c;Elasticsearch 让每个被分析字段经过一系列的处理步骤。 字符过滤–使用字符过滤器转变字符。文本切分为分词—将文本…

JAVA同城圈子达人交友系统源码支持微信小程序+公众号+H5+APP

&#x1f308; 同城圈子达人交友系统&#xff0c;遇见志同道合的TA&#xff01; &#x1f389; 开篇&#xff1a;告别孤单&#xff0c;同城圈子等你来探索&#xff01; 在这个快节奏的城市生活中&#xff0c;你是否常常感到孤独&#xff0c;渴望找到一群志同道合的朋友&#…

2024年铜川宜君半程马拉松,暴晒+爬坡152安全完赛

1、赛事背景 2024年7月21日&#xff0c;我参加了2024年铜川宜君半程马拉松赛&#xff0c;7月举办的赛事很少&#xff0c;全国都算温度比较高的&#xff0c;虽然宜君是一个山城&#xff0c;还是会担心气温会高。 临开赛1、2周&#xff0c;陕西区域降水比较多&#xff0c;赛前一…