1、概述
本节主要描述了以进程池模式创建服务器程序的过程,而该进程池框架是以 acl_master 模板为管理进程,以 acl_single_server 单一进程池模式为半驻留进程池模板创建的。该进程池模型有如下特点:
1.1)半驻留进程池特征;
1.2)一个网络连接对应一个工作进程。
2、创建过程(以 acl_project/samples/master/single_echo 为例,ACL库是跨平台的,但 acl_master 服务器框架仅能运行在UNIX平台下)
在acl_project/samples/master/single_echo/ 目录下存放着一个以 acl_single_server 为服务器模型的echo服务程序。在该目录下应该有 main.c, app_log.c, app_log.h, Makefile, Makefile.elib 四个文件,所需要修改的只是 main.c 文件,其它几个文件无须修改。
2.1)编写源文件
a)包含 ACL 库的头文件: #include "lib_acl.h"
b)调用服务函数 acl_single_server_main() 并注册相关函数:
函数原型:void acl_single_server_main(int argc, char **argv, ACL_SINGLE_SERVER_FN service,...);
argc, argv: 是 main() 入口的两个参数;
service :是用户自己的服务工作函数指针,该函数是以注册函数的方式注册进服务框架模板并由服务框架调用的;
...:是一些不定参数,这些参数都是可选的,这些不定参数是以“类型:指针”的方式传递给服务框架的,由服务框架根据类型自动进行分析,常用类型有:
ACL_MASTER_SERVER_INT_TABLE--为int类型的配置项集合的结构数组指针(该类型与由框架读取用户所需要的配置项相关);
ACL_MASTER_SERVER_STR_TABLE--字符串类型的配置项集合的结构数组指针(该类型与由框架读取用户所需要的配置项相关);
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!