libevent源码解析
文章平均质量分 92
Ch_ty
这个作者很懒,什么都没留下…
展开
-
OpenSSL编译记录
编译环境:VS2012+OpenSSL 1.0.2n首先需要安装Perl,并下载源码,然后开始编译。(1) 打开对应的32位或者64位VS命令行(推荐用管理员打开,也许不需要)进入OPENSSL目录(2) 配置编译文件perl Configure debug-VC-WIN32 no-asm --prefix="d\OpenSSL"其中:debug-VC-WIN32 表示windows...原创 2019-10-26 10:59:47 · 739 阅读 · 1 评论 -
libevent源码解析(一)核心数据结构
一. 前言 Libevent是一个轻量级的开源高性能网络库,对于学习网络编程、学习C语言等都有着很大的帮助。Libevent 有几个显著的亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台,支持Windows、Linux、BSD和Mac Os;支持多种I/O多路复用技术, epoll、poll、dev/poll、sel...原创 2018-06-21 19:19:10 · 1169 阅读 · 0 评论 -
libevent源码解析(二)event接口函数
一.前言 在上一篇中,我们提到了event结构注释里说明了可用的接口函数,即 * event_new(), event_free(), event_assign(), event_get_assignment(), * event_add(), event_del(), event_active(), event_pending(), * event_get_fd(......原创 2018-06-23 19:21:58 · 3458 阅读 · 7 评论 -
libevent源码解析(三)event_base接口函数
一.前言 本文将重点介绍event_base相关的几个接口函数,包括: * event_base_new(), event_base_free(), event_base_loop(), * event_base_new_with_config()二.函数介绍(1)event_base_new()函数 该函数功能如字面意思,即建立一个新的event_bas...原创 2018-06-25 20:11:35 · 1224 阅读 · 0 评论 -
libevent源码解析(五)evbuffer增删拷贝接口函数
一.前言 本篇分析evbuffer以及evbuffer_chain的相关接口函数。源码在buffer.c中,由于接口函数众多,这里仅介绍部分相对比较复杂的,还有很多几行以内实现的就不做介绍了。二.接口函数解析...原创 2018-07-09 20:56:27 · 620 阅读 · 0 评论 -
libevent源码解析(四)evbuffer结构
一.前言 在前文中,我们分析了libevent库最基本的事件:event的数据结构及相关接口函数,并分析了event背后(backend)的事件库/事件管理核心event_base的数据结构及相关接口函数,由此了解了事件管理的整个循环过程,以及加入、删除、激活、释放事件等基本操作。在此基础上,本文分析缓冲部分,即evbuffer结构。二.evbuffer结构体 话不多数,直接看...原创 2018-07-07 10:06:10 · 479 阅读 · 1 评论 -
libevent源码解析(六)evbuffer读写查找接口函数
一.前言 在前一篇文章里我们给出了evbuffer和evbuffer_chain相关的基础增删之类的接口函数,在本文中我们重点研究evbuffer的读写查找等接口函数的实现原理。二.查找函数分析(1)evbuffer_ptr结构体/** 指向buffer中指定位置,可以快速的浏览而不需要反复超找 修改evbuffer会导致其失效 Pointer to ...原创 2018-07-28 20:37:57 · 666 阅读 · 0 评论 -
libevent源码解析(七)reactor模式及proactor模式
一.前言 在看了一部分源码之后,对reactor模式和proactor有了更详尽的了解。记录在此。网上关于这两个不同的模式有一个很经典的例子:去打印店打印材料人太多了需要排队,老板提供两种服务,一种是排队到你的时候通知你,然后你去选择如何打印,打印什么东西;另一种则是提前告诉老板要如何打印,打印什么东西,老板帮你打印好了再通知你。这两种都是异步的经典方式,可以最大程度的提高效率,至于谁优谁劣...原创 2018-07-28 21:19:04 · 866 阅读 · 1 评论 -
libevent源码解析(八)hello, world
/* 简单的TCP服务器,监听TCP连接并回复消息 "hello, world" This example program provides a trivial server program that listens for TCP connections on port 9995. When they arrive, it writes a short message to e...原创 2018-09-11 22:19:18 · 266 阅读 · 0 评论