libevent入门篇

news2025/1/10 23:33:29

文章目录

  • 概述
    • 下载
    • 编译
    • 目录
      • 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://www.coloradmin.cn/o/1959999.html

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

相关文章

命令行使用ADB,不用root,完美卸载小米预装软件

ADB安装与运行 install java 下载安装 注意选择JDK17以上版本 https://www.oracle.com/java/technologies/downloads/#jdk22-windows 选择中间的安装文件下载 编辑系统变量 C:\Program Files (x86)\Java\jdk-22 C:\Program Files (x86)\Java\jdk-22\bin 把C:\Progra…

YOLOv9训练完成后的权重文件夹中绘制的图像和txt,val_loss一直为0

现象: 在利用YOLOv9源码进行模型训练的时候,在训练完成后,权重文件夹中的图像和txt文件,val_loss一直为0。 原因: 在训练过程中,为计算验证的loss 修改: 在val_dual.py的197行,将原…

安防监控视频平台LntonAIServer视频监控管理平台裸土检测算法

LntonAIServer裸土检测算法代表了一种先进的土地监测技术,它利用人工智能的强劲能力,实现了对裸土区域的自动识别和实时监测。该算法的推出,为环境保护、农业管理以及城市规划等多个领域提供了创新的解决方案,其应用前景广阔&…

2024年《开学第一课》手机在线观看高清直播入口直达词令是什么?

2024年《开学第一课》播出时间是:2024年9月1日20:00 将在央视CCTV-1电视频直播,手机上观看2024年《开学第一课》高清直播或投屏到电视观看入口直达词令。详情请查如下说明: 2024年《开学第一课》手机在线观看高清直播入口直达词令是什么&…

【云原生】Kubernetes----k8s免密使用harbor私有仓库

目录 引言 一、搭建Harbor仓库 (一)关闭防护 (二)安装docker (三)安装docker-compose (四)安装harbor-offline 1.获取安装包 2.修改配置文件 3.启动服务 4.登录仓库验证 二…

适合大学生体质的开发者工具介绍

在这个快速变化的技术世界中,开发者们总是在寻找能够提升工作效率、优化代码质量的工具。本篇博客将带领您深入了解一系列专为开发者设计的实用工具,它们不仅能帮助您简化开发流程,还能增强代码的可读性和可维护性。 从代码编辑器到版本控制…

Milvus Cloud实战指南:选型与部署的艺术

Milvus Cloud 向量数据库进阶探索:实战场景下的选型与部署策略 在快速发展的AI与大数据领域,向量数据库作为处理高维数据的关键技术,正逐渐成为开发者们不可或缺的工具。然而,面对琳琅满目的开源向量数据库项目以及它们提供的多样化部署形态,如何根据实际需求做出最佳选择…

hot100-6--矩阵

73矩阵置0 54螺旋矩阵 48旋转图像 240搜索二维矩阵2 思路

K8S及Rancher部署

前置准备工作 SSH命令 查看本机ssh文件 cat .ssh/ 没有则生成,生成ssh ssh-keygen -t rsa -C "邮箱" 参数解释: -t 表示ssh的密钥类型,常用的有:rsa、ed25519、dss。-C 注释或称名称标识,此值随意。…

跟着丑萌气质狗学习WPF——布局控件Grid和StackPanel

布局控件Grid和StackPanel 1. 基本属性2. 行列分配2.1 完整代码2.2 绝对分配2.3 相对分配2.4 自动分配 1. 基本属性 <Window x:Class"WPF_Study_Solution.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"ht…

PDF编辑器大分享,这三款加速PDF编辑!

嘿&#xff0c;各位办公室的小伙伴们&#xff0c;今儿咱们来聊聊那些让咱们文员生活变得更加轻松愉快的神器——PDF编辑器&#xff01;作为每天跟文档打交道的“文字魔术师”&#xff0c;选对工具那可真是事半功倍啊。今天&#xff0c;我就从我的亲身体验出发&#xff0c;给大伙…

maven项目依赖本地jar包

maven项目依赖本地jar包 一、jar包依赖 在项目下新建lib目录&#xff0c;并将jar包拷贝到lib目录下。 二、POM配置 <!--依赖本地jar包文件--> <dependency><groupId>cn.dd.summer</groupId><artifactId>dd-summer-async</artifactId><…

Clo3D 导出glb带动画

1.前言 Clo3D的服装动画属于顶点动画&#xff0c;为了让服装动画在浏览器上播放需要导出glb格式。在此之前&#xff0c;导出过Alembic&#xff0c;然后导入Unity3D进行播放&#xff0c;但是浏览器不支持Alembic格式动画&#xff0c;所以想到导出glb格式&#xff0c;然后使用Thr…

Windows中文用户名改为英文用户名的办法

注意&#xff1a;本教程适合对电脑有一定了解&#xff0c;适合有很强动手能力的朋友操作&#xff0c;小白切勿尝试&#xff01; 注意&#xff1a;本教程适合对电脑有一定了解&#xff0c;适合有很强动手能力的朋友操作&#xff0c;小白切勿尝试&#xff01; 注意&#xff1a;…

苹果电脑怎么使用Windows软件 苹果笔记本怎么安装Windows mac怎么安装windows

最早的苹果电脑的概念是在1976年的时候由乔布斯提出来的&#xff0c;在1977年的时候发行的第一款个人电脑&#xff0c;也就是苹果笔记本电脑。苹果笔记本的操作系统是MAC OSmac OS是基于unix内核的系统&#xff0c;这个系统是专门为苹果电脑开发的。macOS比windows的视觉冲击大…

scipy.fft.fft函数与scipy.fft.rfft函数的异同

import numpy as np from scipy import signal import matplotlib.pyplot as plt思路&#xff1a;1&#xff09;先利用fft计算得出其幅频值2&#xff09;在利用rfft计算得出其幅频值&#xff0c;看1&#xff09;和2&#xff09;那个能还原出信号的原始幅值# 生成一个示例信号 n…

阅读笔记:明朝那些事儿之拐弯中的帝国

​万历皇帝时期内阁首辅&#xff1a; 张居正&#xff0c;申时行&#xff0c;王锡爵&#xff0c;许国&#xff0c;王家屏&#xff0c;赵志皋&#xff08;给皇帝写辞职信没有回音&#xff0c;自己不告而回家&#xff09;&#xff0c;沈一贯&#xff0c;于慎行&#xff0c;叶向高…

Sfera - 将树莓派引入工业自动化环境

Raspberry Pi 是我们客户最青睐的工业应用平台 Sfera Labs 的客户需要从纯工业应用到边缘计算再到关键安全应用的各种解决方案。Raspberry Pi 是一个灵活、可靠的开放平台,可以满足所有这些需求。 解决方案 Raspberry Pi 3B Raspberry Pi 4 Raspberry Pi Compute Module 3 Ras…

高可用集群--KeepAlived

文章目录 集群类型VRRP为什么需要VRRP KeepAlivedKeepAlived介绍KeepAlived架构编译安装1.下载源码包并解压2.查看install文件的安装说明3.执行“./configure”4.make && make install5.指定keepalived.conf配置文件6.修改keepalived的server文件报错 WARNING - interf…

面试面到自闭,字节软件测试岗五轮面试,四个小时灵魂拷问...

准备过程 我自己是本科毕业后在老东家干了两年多&#xff0c;老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身)&#xff0c;毕业这两年多我也没有在大厂待过&#xff0c;因此找坑的时候是非常非常虚的。迫于心慌&#xff0c;我好好思考了一阵来…