Libevent源码学习(一) 支持多种网络模型原理

本文介绍了Libevent如何支持多种网络模型,包括Linux和Windows下的实现。作者详细阐述了Libevent的基类接口、不同网络模型的构建以及统一的使用方法,并通过源码分析了关键部分,如`event_base`和`event_base_loop`函数。
摘要由CSDN通过智能技术生成

  在linux下学习了一段时间网络编程,主体的编程思路懂得差不多了(windows下做过,基本差不多),所以决定看些开源的库来实际学习一下.故选择了相对简练的libevent进行代码阅读.在读的过程中,参考了一位已经将libevent解析的很清楚的大神的博客.http://blog.csdn.net/sparkliang/article/details/4957667

这里算是自己学习过程中的一些结果写出来,供大家参考.源码使用的也是1.4.13稳定版.

一.支持多种网络模型原理

在libevent官网上,大家都看到libevent支持各种不同的网络模型,而且还支持跨平台.其实这部分如果从C++的编程思想来看,大家可以很容易想到,利用类的继承加上虚函数实现.

1.首先构建一个基类,定义接口函数

2.继承这个基类,实现多个不同网络模型方法(接口)

3.使用指向子类的基类指针实现统一访问

由于libevent使用纯C代码实现,所以上面的部分只是给大家回忆一下C++怎么实现的而已,但是基本思想差不多一致.下面结合libevent的实际代码说明.

1.基类与接口,本部分代码位于event-internal.h文件中

struct eventop {
	const ch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值