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

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";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值