Libevent是一个用于编写高速可移植非阻塞IO应用的库,它的设计目标是:

可移植性:使用libevent编写的程序应该可以在libevent支持的所有平台上工作。即使没有好的方式进行非阻塞IO,libevent也应该支持一般的方式,让程序可以在受限

的环境中运行。

速度:libevent尝试使用每个平台上最高速的非阻塞IO实现,并且不引入太多的额外开销。

可扩展性:libevent被设计为程序即使需要上万个活动套接字的时候也可以良好工作。

方便:无论何时,最自然的使用libevent编写程序的方式应该是稳定的、可移植的。

libevent由以下组件构成:

evutil:用于抽象不同平台网络实现差异的通用功能。

event和event_base:libevent的核心,为各种平台特定的、基于事件的非阻塞IO后端提供抽象API,让程序可以知道套接字何时已经准备好,可以读或者写,并且处理基

本的超时功能,检测OS信号。

bufferevent:为libevent基于事件的核心提供使用更方便的封装。除了通知程序套接字已经准备好读写之外,还让程序可以请求缓冲的读写操作,可以知道何时IO已经真

正发生。(bufferevent接口有多个后端,可以采用系统能够提供的更快的非阻塞IO方式,如Windows中的IOCP。)

evbuffer:在bufferevent层之下实现了缓冲功能,并且提供了方便有效的访问函数。

evhttp:一个简单的HTTP客户端/服务器实现。

evdns:一个简单的DNS客户端/服务器实现。

evrpc:一个简单的RPC实现。

安装libevent库:

注意:必须以root用户身份执行以下操作

1、下载源码包

https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

2、解压

tar zxvf libevent-2.0.21-stable.tar.gz

3、配置安装路径

cd libevent-2.0.21-stable

./configure -prefix=/usr

4、编译并安装

make

make install

5、测试libevent是否安装成功:

#ls -al /usr/lib | grep libevent

6、如果编译后的程序提示找不到libvent的so,则创建库的链接和缓存文件

ldconfig

最新文章

  1. IBM云的商务动作之我见(2):IBM 和 VMware 战略合作推进混合云
  2. linux 学习 软件工具
  3. TinyFrame升级之四:IOC容器
  4. manage account
  5. Xcode因为证书问题经常报的那些错
  6. Tomcat(JVM)性能监控方法
  7. T恤
  8. 剑指offer-第三章高质量的代码(调整数组顺序使得奇数位于偶数的前面)
  9. SQL中使用WITH AS提高性能
  10. python通过代理刷网页点击量
  11. .net程序员转战android第一篇---环境部署
  12. 软件开发V型号
  13. github从上传代码到发布静态网站
  14. 查找Oracle数据库中的重复记录
  15. Thymleaf中th:each标签遍历list如何获取index
  16. spring+activemq配置文件内容及实现原理
  17. Java中 CopyOnWriteArrayList 的使用
  18. HDU.1556 Color the ball (线段树 区间更新 单点查询)
  19. default of c#
  20. BZOJ4032: [HEOI2015]最短不公共子串(后缀自动机+序列自动机)

热门文章

  1. iOS AppIcon + launchImage+iPhone 屏幕分辨率相关知识
  2. tcpdump 命令行抓包工具
  3. 发现并认为这是jQuery1.4.4的一个Bug
  4. iOS图片压缩
  5. android 高德地图API 之 java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLibrary returned null错误
  6. log4Net配置详解
  7. wpf 调用线程必须为sta 因为许多ui组件都需要
  8. ASP.NET Excel数据导出数据库
  9. oc常用正则表达式
  10. 【转】WF事件驱动