开源高性能网络库Libevent的简介
Libevent是什么?
Libevent 是一个用C语言编写的、轻量级的开源高性能网络库。
优点:
(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
开源高性能网络库Libevent的简介的更多相关文章
- Linux下经常使用的C/C++开源Socket库
1. Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html 2. ACE: h ...
- Linux下经常使用的C/C++开源Socket库【转】
转自:https://www.cnblogs.com/gccbuaa/p/7015599.html 1. Linux Socket Programming In C++ : http://t ...
- 开源网络库ACE、Boost的ASIO、libevent、libev、ZeroMQ
开源C/C++网络库:ACE C++语言 跨平台Boost的ASIO C++语言 跨平台libevent C语言 主要支持linux,新版增加了对windows的IOC ...
- [转]开源日志库<log4cplus+VS2008使用>整理
转 开源日志库<log4cplus+VS2008使用>整理 转http://pyhcx.blog.51cto.com/713166/143549 一.简介 log4cplus是C+ ...
- GNU Readline 库及编程简介
用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C ...
- Pugixml一种快速解析XML文件的开源解析库
Pugixml是一个轻量级的C++ XML开源解析库,DOM形式的解析器.接口和丰富的遍历和修改操作,快速的解析,此外支持XPath1.0实现数据查询,支持unicode编码: 使用Pugixml可通 ...
- iOS流行的开源代码库
本文介绍一些流行的iOS的开源代码库 1.AFNetworking 更新频率高的轻量级的第三方网络库,基于NSURL和NSOperation,支持iOS和OSX.https://github.com/ ...
- 从Google开源RE2库学习到的C++测试方案
最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点.今天研究了下里面用到 ...
- 爆料喽!!!开源日志库Logger的剖析分析
导读 Logger类提供了多种方法来处理日志活动.上一篇介绍了开源日志库Logger的使用,今天我主要来分析Logger实现的原理. 库的整体架构图 详细剖析 我们从使用的角度来对Logger库抽茧剥 ...
随机推荐
- Jenkins的多个任务并串联参数传递
Jenkins的多个任务并串联参数传递 Parameterized Trigger Plugin插件可以使多个job连接的时候可以传递一些job相关的参数信息. 1.Parameterized Tri ...
- Vsual Studio 高版本打开低版本项目的方法
https://www.cnblogs.com/jmliao/p/5594179.html
- sql 循环 ,随机数,循环插入一年数据
--循环插入一年的时间 DROP TABLE #temp CREATE TABLE #temp (date DATETIME); DECLARE @year INT ; WITH a1 AS ( SE ...
- | 与|| ,& 与&&
& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式 举例:12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是 ...
- Problem H: 小姐姐的QQ号(DFS)
Contest - 河南省多校连萌(四) Problem H: 小姐姐的QQ号 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 297 Solved: ...
- 深入了解java虚拟机(JVM) 第十一章 类的加载
一.类加载机制概述 虚拟机把描述类的数据从class文件加载到内存并对数据进行效验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制. 二.类加载的机制 类加载的过程 ...
- 牛客OI赛制测试赛1 题解
A 斐波那契 数竞生:这不是送分的常识吗? 这里引入一个叫卡西尼恒等式的玩意. 公式表达就是 设$fib[i]$为斐波那契数列的第$i$项$(i>0,i \in N_+)$ 则有 $fib[i+ ...
- php扩展memcache和memcached区别?以及memcached软件的介绍
引用“http://www.vicenteforever.com/2012/03/memcache-different-memcached/” memcached是一个软件,而PHP包括了memcac ...
- 《快学Scala》第六章 对象 第七章 包和引入
- 面向对象之ajax
1.Ajax发送请求的几个步骤 1. 创建 XMLHttpRequest 对象 var xhr = new XMLHttpRequest();//IE6 使用var xhr= new ActiveXO ...