开源代码阅读
AAA20090987
一个喜欢编程,喜欢C 的人
展开
-
nginx队列模块的分析和使用
nginx队列模块的设计挺精妙的,也算是用一个C语言实现泛型编译的典型例子了,我将其独立出来,写上注释和测试例子,方便以后查看。原创 2013-12-16 15:14:01 · 2222 阅读 · 0 评论 -
libevent2.0源码学习一:前言
开始分析之前的废话使用libevent 2.0.21-stable(这个系列的分析也是基于这个版本的)也有一段时间了,最近心血来潮去读了它的源码。顺便也写一下分析吧,方便以后查看,也利于别人学习和交流。原创 2014-02-18 15:51:47 · 2092 阅读 · 0 评论 -
libevent2.0源码学习二:通用数据结构
本来想分析一下libevent实现的链表,队列,最小椎,哈希表这三个数据结构的,后来发现网上已经有人写过分析了,我就不重要造轮子啦。上链接:1:TAILQ队列(compat/sys/queue.h):http://bachmozart.iteye.com/blog/2928362:最小堆(minheap-internal.h):http://www.cppblog.com/kevi原创 2014-02-18 15:59:40 · 2110 阅读 · 0 评论 -
从 bufferevent 实现学习 Libevent 的使用
Libevent 2 提供了 bufferevent 接口,简化了编程的难度,bufferevent 实际上是对底层事件核心的封装,因此学习 bufferevent 的实现是研究 Libevent 底层 event、event_base 用法的一个好办法。本文假定你已经对 Libevent 有一定的认识,否则可以先阅读我关于 Libevent 的介绍:Libevent(1)— 简介、编译、配置转载 2014-03-06 16:23:49 · 3019 阅读 · 0 评论 -
libevent2.0分析:事件循环的一生
对于一个网络框架而言,其中的事件循环无疑是重要的组成部分,下面,我们就来分析一下libevent的事件循环。原创 2014-02-22 14:36:05 · 3808 阅读 · 0 评论 -
libevent2.0源码学习三:对网络模型的(EPOLL)的封装
Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,所以,libevent对系统底层的网络模型作了一层封装,下面我们就来看一下。原创 2014-02-19 15:34:10 · 4479 阅读 · 0 评论 -
redis网络事件框架的使用
redis封装了一个小型网络库供自己使用,这个网络库只有几百行代码,却基本实现了一个高效的异步网络事件框架,而且与其他redis模块相对独立,故我将其独立出来,方便以后复用。与著名的libevent相比,它代码精简,只实现了最基本的功能,而且没有用上什么高深的技术,十分适合我们学习和借鉴。 以下这个程序实现了一个简单的回显服务器,并且每秒钟在控制台输出一句话。它简单地演示了redis网络模块的使用。 这个程序由6个源文件组成,ae.h, ae.c, ae_epoll.c, anet.h, anet.c原创 2013-11-25 17:33:21 · 3093 阅读 · 7 评论