首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

施用 acl:master_threads 类编写多进程多线程服务器程序

2012-07-23 
使用 acl::master_threads 类编写多进程多线程服务器程序? ? ? 文章《开发多线程进程池服务器程序》讲述了如

使用 acl::master_threads 类编写多进程多线程服务器程序

? ? ? 文章《开发多线程进程池服务器程序》讲述了如何使用 acl 库中的服务器模板编写多进程多线程服务器程序,那个例子是用 C 语言实现的,acl_cpp 对 acl 库用 c++ 语言进行了封装,其中也包含服务器编程模块,本文主要讲述如何使用 acl_cpp 中的 master_threads 类编写可以由 acl_master 服务器父进程控制的服务器应用程序。关于基于acl_master 的服务器程序设计原理,请参考 《协作半驻留式服务器程序开发框架》。

? ? ? 一、类接口说明

? ? ? master_threads 是一个纯虚类,其中定义的接口需要子类实现,如下:

## 与该服务器框架模板相关的配置参数项# 每个服务进程中最大的线程数为 250ioctl_max_threads = 250# 线程的堆栈空间大小,单位为字节,0表示使用系统缺省值ioctl_stacksize = 0# 每个进程实例处理连接数的最大次数,超过此值后进程实例主动退出ioctl_use_limit = 100# 每个进程实例的空闲超时时间,超过此值后进程实例主动退出ioctl_idle_limit = 120# 进程运行时的用户身份ioctl_owner = root# 采用事件循环的方式: select(default)/poll/kernel(epoll/devpoll/kqueue)ioctl_event_mode = select# 允许访问 udserver 的客户端IP地址范围ioctl_access_allow = 10.0.0.1:10.0.0.255, 127.0.0.1:127.0.0.1

?

? ? ? 例如当 acl_master 服务器框架程序的安装目录为:/opt/acl,则:

? ? ? /opt/acl/libexec: 该目录存储服务器程序(acl_master 程序也存放在该目录下);

? ? ? /opt/acl/conf:该目录存放 acl_master 程序配置文件 main.cf;

? ? ? /opt/acl/conf/service:该目录存放服务子进程的程序配置文件,该路径由 main.cf 文件指定;

? ? ? /opt/acl/var/log:该目录存放日志文件;

? ? ? /opt/acl/var/pid:该目录存放进程号文件。

? ? ? 该程序编译通过后,需要把可执行程序放在 /opt/acl/libexec 目录下,把配置文件放在 /opt/acl/conf/service 目录下。

? ? ? 在 /opt/acl/sh 下有启动/停止 acl_master 服务进程的控制脚本;运行脚本:./start.sh,然后请用下面方法检查服务是否已经启动:

? ? ? ps -ef|grep acl_master # 查看服务器控制进程是否已经启动

? ? ? netstat -nap|grep LISTEN|grep 5001 # 查看服务端口号是否已经被监听

? ? ? 当然,您也可以查看 /opt/acl/var/log/acl_master 日志文件,查看服务进程的启动过程及监听服务是否正常监听。

?

? ? ? 可以命令行如下测试:telnet 127.0.0.1 5001

? ? ? ?原文地址

? ? ? ?acl_cpp 下载

???????acl_cpp 的编译与使用

? ? ? ?更多文章

?

热点排行