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

  在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

你可能感兴趣的:(网络编程学习)