网络编程-libevent安装和简单介绍

​      现在高性能网络服务器基本都是异步I/O模式构建的,而Libevent就是对select、poll、epoll等各类异步模式接口的封装,通过设置回调函数的方式,在监听文件描述符和套接字读写事件的同时,还兼任定时器和信号接收的管理工作。Libevent对高性能服务器后台开发、跨平台开发、网络开发都具有很大的参考学习价值。官方主页显示很多的项目都用到了Libevent库,而且还可作为主机内部进程间通信和数据交互。Libevent也考虑到pthread线程模型的同步问题,保证关键数据结构在多线程并行下的数据安全! ​ 

简介的说:​Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,

主要有以下几个技术点:

  • 事件驱动,高性能;轻量级,专注于网络,
  • 支持跨平台、可以在Windows、Linux和Mac Os等环境下运行;
  • 支持多种 I/O 多路复用技术等;
  • 支持 I/O,定时器和信号等事件;注册事件优先级

libevent 由下列组件构成:

  1. evutil:用于抽象不同平台网络实现差异的通用功能。
  2. event 和event_base:libevent 的核心,为各种平台特定的、基于事件的非阻塞IO 后端提供抽象API,让程序可以知道套接字何时已经准备好,可以读或者写,并且处理基本的超时功能,检测OS 信号。
  3. bufferevent:为libevent 基于事件的核心提供使用更方便的封装。除了通知程序套接字已经准备好读写之外,还让程序可以请求缓冲的读写操作,可以知道何时IO 已经真正发生。
  4. evbuffer:在bufferevent 层之下实现了缓冲功能,并且提供了方便有效的访问函数。
  5. evhttp:一个简单的HTTP 客户端/服务器实现。
  6. evdns:一个简单的DNS 客户端/服务器实现。
  7. evrpc:一个简单的RPC 实现

安装库

去官网:https://libevent.org/

#在当前目录下解压安装包:
tar -zxvf llibevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --prefix=/usr
make
make install

实践设计需要:

1.实现服务器和客户端的通信,传输特定的数据结构格式

typedef  struct
{
    char head[4];
    unsigned long pack_len;
    int code;
} msg_header;

实现采用分为两种方式,包括不带缓冲的事件框架和带缓冲的事件框架

网络编程-libevnet不带缓冲的事件框架

网络编程-libevnet带缓冲的事件框架
网络编程-libevnet编程整理一些小事项

资料参考:

https://libevent.org/

https://blog.gmem.cc/libevent-study-note

https://blog.csdn.net/qq769651718/article/details/79431368

https://blog.csdn.net/dengjin20104042056/category_9267682.html

https://blog.csdn.net/luotuo44/category_2435521.html

https://blog.csdn.net/windeal3203/category_6489079.html

https://blog.csdn.net/weixin_44718794/category_10018798.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值