IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux中使用libevent服务端和客户端的通信(安装libevent过程,并解决编译后找不到libvent的so的问题,详细截图) -> 正文阅读

[系统运维]Linux中使用libevent服务端和客户端的通信(安装libevent过程,并解决编译后找不到libvent的so的问题,详细截图)

libevent

libevent是一个轻量级的开源的高性能的事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。

它被众多的开源项目使用,如memcached等。
特点:
事件驱动,高性能;
轻量级,专注于网络(相对于ACE);
开放源码,代码相当精炼、易读;
跨平台,支持Windows、Linux、BSD和Mac OS;
支持多种I/O多路复用技术(epoll、poll、dev/poll、select和kqueue等),在不同的操作系统下,做了多路复用模型的抽象,可以选择使用不同的模型,通过事件函数提供服务;
支持I/O,定时器和信号等事件;

Reactor模式

libevent是一个典型的reactor模式的实现。
普通的函数调用机制:程序调用某个函数,函数执行,程序等待,函数将结果返回给调用程序(如果含有函数返回值的话),也就是顺序执行的。
Reactor模式的基本流程:应用程序需要提供相应的接口并且注册到reactor反应器上,如果相应的事件发生的话,那么reactor将自动调用相应的注册的接口函数(类似于回调函数)通知你,所以libevent是事件触发的网络库。

Linux下libevent主要API

创建事件集
struct event_base *event_base_new(void);

创建事件
struct event event_new (struct event_base ,evutil_socket_t ,short ,event_callback_fn, void*)

添加事件
int event_add(struct event * ev,const struct timeval* timeout)

删除事件
int event_del(struct event *)

事件循环
int event_base_loop(struct event_base *base, int flags)
int event_base_dispatch(struct event_base *event_base)

libevent官网

http://libevent.org/

  1. 首先我们先来安装这个libevent,跟着我以下的步骤来进行

进入到官网,就会看到以下页面,然后右键点击要安装的版本
在这里插入图片描述

现在进入到我们的Linux系统,首先用sudo su命令进入root用户

使用命令(要有网络的情况下才能下载)
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
在这里插入图片描述
下载成功就看到
在这里插入图片描述
然后将这个文件解压用tar zxvf libevent-2.1.12-stable.tar.gz命令 (注意根据自己下载的版本)
在这里插入图片描述
在这里插入图片描述
解压成功之后我们就可以进入libevent-2.1.12-stable这个目录里面去了

进入目录之后就会看到很多文件
在这里插入图片描述
然后执行 ./configure --disable-openssl 这个命令配置安装路径
在这里插入图片描述

看到上面这个说明配置成功了

然后再执行make
在这里插入图片描述
在这里插入图片描述
make成功之后,再执行make install命令
在这里插入图片描述经过以上步骤就成功安装libevent了

怎么查看libevent是否安装成功呢,我们可以执行
ls -la /usr/local/include | grep event这个命令看查看

在这里插入图片描述

我这边呢,准备了一个测试代码(只是部分代码截图)
在这里插入图片描述
在这里插入图片描述
编译时后面需要带上 -levent
在这里插入图片描述

编译成功之后,我们执行这个文件的时候,就会看到这个错误!!!(当然,有的可能没有这个错误)
在这里插入图片描述
在这里插入图片描述
这个是执行后的程序提示找不到libvent的so,则创建库的链接和缓存文件,那么怎么解决这个问题呢?

其实解决这个问题很简单,我们只要输入 ldconfig 命令就可以了
在这里插入图片描述

这样就可以解决了,然后接下来就可以进行执行我的程序了
在这里插入图片描述客户端通过telnet 和 ip + 端口号连接服务端
在这里插入图片描述
再客户端输入信息服务端接收
在这里插入图片描述
在这里插入图片描述

这样就实现了libevent的安装和解决编译执行的问题,如果有想要这个源码的可以在评论中留言

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 11:14:16  更:2021-07-23 11:14:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:31:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码