开源高性能网络库Libevent的简介

Libevent是什么?

  Libevent 是一个用C语言编写的、轻量级的开源高性能网络库。

  官网:http://libevent.org/

优点:

  (1)事件驱动,高性能

  (2)轻量级,专注于网络

  (3)跨平台,支持Windows,Linux,MacOS等

  (4)支持多路I/O复用,epoll,poll,dev/poll,select 和kqueue 等

  (5)支持I/O,信号等事件

五大功能:

  (1)DNS是libevent提供的一个异步DNS查询功能

  (2)HTTP是libevent的一个轻量级http实现,包括服务器和客户端

  (3)缓存管理是指evbuffer功能

  (4)事件管理包括各种IO(socket),定时器,信号等事件,也是libevent应用最广的模块

  (5)缓存事件

1.定时器:

event_init() => evtimer_set() => event_add() =>event_dispatch()

2.TCP服务器

event_base_new()=>event_set()=>event_base_set()=>event_add()=>event_base_dispatch()

3.DNS解析
evdns_init();=>evdns_resolve_ipv4()=>event_dispatch()=>event_base_free();

本文转自http://www.cnblogs.com/sxmcACM/p/4425899.html

时间: 2024-11-14 15:41:32

开源高性能网络库Libevent的简介的相关文章

Linux下常用的C/C++开源Socket库

1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2.      ACE: http://www.cs.wustl.edu/~schmidt/ACE.html ACE采用ACE_OS适配层屏蔽各种不同的.复杂繁琐的操作系统API. ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层.它庞大.复杂,适合大型项目.开源.免费,不依赖第三方库

C++开源网络库(Socket library)

(1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html http://download.dre.vanderbilt.edu/ (2)Asio Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发. 开源.免费,支持跨平台. http://think-async.com/ (3)POCO POCO C++ Libraries 提供一套 C++ 的类库

Linux下经常使用的C/C++开源Socket库

1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2.      ACE: http://www.cs.wustl.edu/~schmidt/ACE.html ACE採用ACE_OS适配层屏蔽各种不同的.复杂繁琐的操作系统API. ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层.它庞大.复杂.适合大型项目.开源.免费.不依赖第三方库

【Android开源项目解析】RecyclerView侧滑删除粒子效果实现——初探Android开源粒子库 Leonids

前两天在微博上看到了这个侧滑删除的粒子效果,但是只有IOS的,所以心血来潮,写了个玩玩,下面简单介绍下实现的思路 项目简介 实现原理解析 代码实现 如何使用 更多参考 项目简介 先不废话,上效果图 项目地址:https://github.com/ZhaoKaiQiang/ParticleLayout 实现原理解析 其实看了那么多的关于侧滑删除的项目,再来思考这个问题,就so easy了! 咱们先分析下需求: - 侧滑手势检测 - 粒子跟手效果 - 删除状态判断 - 数据源刷新 ok,知道需求了,

iOS流行的开源代码库

本文介绍一些流行的iOS的开源代码库 1.AFNetworking 更新频率高的轻量级的第三方网络库,基于NSURL和NSOperation,支持iOS和OSX.https://github.com/AFNetworking/AFNetworking 2.GPUImage 图像处理库,基于OpenGL ES,图像处理效率高.https://github.com/BradLarson/GPUImage 3.Masonry 自动布局库.https://github.com/SnapKit/Mason

GNU Readline 库及编程简介

用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C-B / C-F 将光标向左/向右移动一个位置 C-D 删除光标下的一个字符 C-K 删除光标及光标到行尾的所有字符 C-U 删除光标到行首的所有字符 ... 同样的操作在很多交互式程序都有类似的操作,例如 ftp.gdb 等等,那么你是否想过这些是如何实现的呢?如果我们要做一个命令行下的交互式开源

基于HTML5的开源图标库-ECharts

ECharts: 来自百度商业前端数据可视化团队,基于html5 Canvas,纯Javascript图表库,底层依赖ZRender,商业产品常用图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘.整合的能力.图表类型支持折线图(区域图).柱状图(条状图).散点图(气泡图).K线图.饼图(环形图).雷达图(填充雷达图).和弦图.力导向布局图.地图,同时支持任意维度的堆积和多图表混合展现. 链接是:h

爆料喽!!!开源日志库Logger的使用秘籍

导读 日志对于开发来说是非常重要的,不管是调试数据查看.bug问题追踪定位.数据信息收集统计,日常工作运行维护等等,都大量的使用到.今天介绍著名开源日志库Logger的使用,库的地址:https://github.com/orhanobut/logger 在Android Studio中的gradle中加入,就可以引用依赖logger库: dependencies { compile 'com.orhanobut:logger:1.15' } Logger库能提供的功能: 线程的信息 类的信息

Android开源图表库XCL-Charts版本号公布及展示页

XCL-Charts V2.1 Android开源图表库(XCL-Charts is a free charting library for Android platform.) XCL-Charts基于原生的Canvas来绘制各种图表,在设计时,尽量在保证开发效率的同一时候,给使用者提供足够多的定制化能力. 因此使用简便,同一时候具有相当灵活的定制能力. 眼下支持(3D/非3D,背向式)柱形图(Bar Chart).3D/非3D饼图(Pie Chart).堆叠图(Stacked Bar Cha