当前位置:   article > 正文

Linux中使用libevent服务端和客户端的通信(安装libevent过程,并解决编译后找不到libvent的so的问题,详细截图)_libevent-2.1-stable找不到bio

libevent-2.1-stable找不到bio

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的安装和解决编译执行的问题,如果有想要这个源码的可以在评论中留言

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/492956
推荐阅读
相关标签
  

闽ICP备14008679号