Libevent库笔记(一)下载和编译,测试demo

libevent-2.1.11-stable 编译 Libevent编译 zlib编译 https://blog.csdn.net/qq_36685978/article/details/109029243 openssl编译 https://blog.csdn.net/qq_36685978/article/details/109032032 libevent编译(含openssl模块) 编译环境: windows10 VS 2017的 x64_x86 交叉工具命令提示符 清理之前的编译 nmake /f Makefile.nmake cl 阅读详情

1.下载及编译

1.1.下载

官网:http://libevent.org/
1.4和2.x系列版本,1.4 比较老,但源码简单,适合学习;
2.x 比较新,使用时建议用2.x版本,与1.4版本接口不兼容。
当前2个系列版本状态(2020.02.09)
libevent-release-1.4.15-stable.tar.gz
libevent-2.1.11-stable.tar.gz

1.2.编译

1.2.1.说明

./configure 检查安装环境,生成makefile
make 生成目标文件和可执行文件
sudo make install 将相关头文件、库文件复制到系统目录

1.2.2.Ubuntu平台编译和安装

这里以2.11版本为例
解压
tar -zxvf libevent-2.1.11-stable.tar.gz

在这里插入图片描述
进入解压后的目录
cd libevent-2.1.11-stable/
./configure #检查安装环境,生成makefile
make #生成目标文件和可执行文件
sudo make install #将相关头文件、库文件复制到系统目录
在这里插入图片描述
提示库已经安装到/usr/local/lib
可进入目录查看相关库
在这里插入图片描述
另外头文件位于/usr/local/include
在这里插入图片描述
其中event2是一个目录,
在这里插入图片描述

1.2.3.编译和测试demo

进入sample目录:
cd sample
在这里插入图片描述

$ gcc -o hello hello-world.c -levent
运行demo:
./hello
运行一个客户端连接
$nc 127.0.0.1 9995

在这里插入图片描述
在这里插入图片描述
客户端连接服务端后,服务端反馈hello,world后,立马进行FIN挥手,客户端进行ACK应答。
使用wireshark抓包查看
在这里插入图片描述
在这里插入图片描述

1.2.4.Demo代码

大致可以看出监听端口号为9995
事件中交互一个MESSAGE(为字符串"Hello, World!\n";)

/*
  This example program provides a trivial server program that listens for TCP
  connections on port 9995.  When they arrive, it writes a short message to
  each client connection, and closes each connection once it is flushed.

  Where possible, it exits cleanly in response to a SIGINT (ctrl-c).
*/


#include <string.h>
#include <errno.h>
#include <stdio.h>
#include <signal.h>
#ifndef _WIN32
#include <netinet/in.h>
# ifdef _XOPEN_SOURCE_EXTENDED
#  include <arpa/inet.h>
# endif
#include <sys/socket.h>
#endif

#include <event2/bufferevent.h>
#include <event2/buffer.h>
#include <event2/listener.h>
#include <event2/util.h>
#include <event2/event.h>

static const char MESSAGE[] = "Hello, World!\n";

static const int PORT 
ubuntu上libevent 的安装与测试 首先我安装的版本是libevent-1.4.14b-stable版本。 附上官网链接:http://libevent.org/ 安装及简单使用libevent 接下来我们直接进入正题,安装libevent-1.4。  1. 在官网上下载对应版本的包  2. tar -zxvf /your path/libevent-1.4.14b-stable.tar.gz解压到当前目录  3. cd lib... 阅读详情

相关推荐

libevent-2.1.11-stable.tar.gz

centos动态连接库最新 libevent 2.1.11版本,安装更新适用与新软件的需求

libevent-2.1.11-stable.rar

本软件包是libevent2.1.11版的最新编译静态库,在win10环境下,vc2010环境下编译通过。

libevent-release-2.1.11-stable.zip

官网下载下不来 libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip libevent-release-2.1.11-stable.zip

ubuntu20.04 终端安装claude

【代码】ubuntu20.04 终端安装claude。

hongliyu_lvliyu的博客 2592

MATLAB2021b详细安装教程

1.下载 2.安装 下载安装包后打开iso文件,若是无法打开请用解压软件打开。 ①打开MATLAB_R2021b_win64,双击软件开始安装 ② 一直点击下一步,直到步骤③ ③选择我已有我的许可证的文件密钥,并输入62551-02011-26857-57509-64399-54230-13279-37181-62117-65158-40352-64197-45508-24369-45954-39446-39538-16936-10698-58393-44718-32560-10501-40

惜洛-Jankin的博客 9万+

「转载」vaptcha 等手势验证码图像识别与轨迹提取(思路)

作者:文安哲 从博客重开以后就说要更文章,鸽了蛮久了,赶紧补上一篇嫖嫖各位老公的流量。 最近看群里面大家讨论研究手势验证码比较多,然后我也顺带研究做了一下,给各位老公们分享一下做的过程。 首先,一起来康康手势验证码长啥样! 大概就是长这个样子,需要按照图像中的那条轨迹再图片上滑动,不得不说这类验证码确实体验感拉满,让人很想立马关掉这个网站。 那么言归正传,这类验证码该怎么做识...

AI悦创·编程私教1v1 3597

Air780E模组AT指令实战:5分钟搞定MQTT连接EMQX服务器(附完整代码)

本文详细介绍了如何使用Air780E 4G模组通过AT指令快速连接MQTT服务器。从硬件接线、网络注册到MQTT连接配置,提供了完整的实战步骤和代码示例,帮助开发者快速实现物联网设备的数据上报与远程通信。

wdx012345的博客 743

OpenClaw人人养虾:接入即时通讯平台Zalo

通过 Zalo Official Account(OA,官方账号)API,可以将 OpenClaw 接入 Zalo,实现面向越南用户的自动化客服和互动。

王国平的博客 437

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1024

RK3568平台开发系列讲解(安卓篇)LED呼吸灯系统流程

1.app层封装后使用NotificationManager发出:NotificationManager.notify() 2.Android 系统架构中:一个manager类对应一个aidl接口,一个manager对应一个底层的服务,notification也是这个架构

内核笔记 3646

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4516

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: TCPIP协议基本格式
下一篇: Libevent库笔记(二)样例代码hello-world的注解版本
skytering
博客等级 码龄18年 33粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值