从头开始做一个多线程,支持plugins模型的httpd,就叫 'tea' 吧

今天,开始从头做一个小小的项目,纯粹的演习。

 

项目概述

    既然是演习,就不太关心其意义了,所以目标是:一个跨平台的app_httpd,多线程,支持插件。

 

    跨平台:这个不说了。

    app_httpd:之所以选择这个方向,是因为近期工作涉及到这个方向,另外在很多场景下,使用http作为界面和逻辑的接口,是个很好的选择,所以tea的准确目的不是做一个类似apache的通用http server,而是一个为了方便的把应用(逻辑)与界面分离,并且使用http接口通讯的app server。

    多线程:每个连接使用一个独立的工作线程,这样作的效率似乎很低,但是对于app server,每个连接不互相干扰是很方便的,一个app session完全可以阻塞整个工作线程,而不用关心其它session;

    支持插件:app 使用插件实现;

 

    整个项目使用 autoxxxx 工具管理,主要在linux和mac上开发,使用c语言。

 

创建项目:

    万事开头难,先得学习 autoxxxx 工具,水深啊!按照网上的搜索的一大堆结果,一步一步,磕磕碰碰;

 

    1. 创建目录:tea                      主目录

                              inc                全局头文件

                              src                源码,以及私有头文件

                                      test      测试程序

                              plugins         插件目录

                                      xxx       xxx插件

                              build             构建目录

     2. 编写 Makefile.am:主目录,plugins 目录,这里的 Makefile.am 就是为了指示子目录的,所以模样差不多

                

      3. 继续编写 tea/src 目录的 Makefile.am: 

 

    4. 编写 configure.ac: 这个最头大了(gnu autoconf 的文档里面都说,autoconf不是为了方便开发者,而是方便使用者的),不过理解了基本道理之后,扩展项目可真是方便啊。

 

    5. 好了,autoconf/automake的准备好了,边写代码,边修改configure.ac, Makefile.am,边测试 :)

         autoreconf -i

         cd build

         ../configure

         make

         src/test/test_xxx

 

今天就这些吧,后面开始tea项目本身了。

(刚刚开始用 csdn,是否支持 git 呢?源码如何附上呢?先放在资源里吧,搜 tea source)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值