轻量web服务器开发日记10-server结构体的实现
2016-05-27 11:38
393 查看
server结构体在antweb起到非常重要的作用,它主要记录着整个服务器在运行的信息,其中包括监听套接字、mempool内存池、配置信息、请求连接集合、以及工作进程集合等等。
server结构体:
该结构体在初始化时,会读取配置文件(日记05),创建内存池(日记02),初始化连接集合(日记08),以及创建一些工作进程(默认10个)。而在服务器结束时,server结构体会调用释放函数,把antweb所占有的内存全部归还给系统。
该操作的函数实现:
server结构体:
typedef struct { //定义监听套接字 int listenfd; //定义监听套接字的地址结构 struct sockaddr_in listenfd_addr; //记录内存池 mempool *mpool; //记录全部配置信息 configure *conf; //记录全部的连接 connection_array *cons; //记录所有工作进程的状态 worker *workers; //记录当前的工作进程id,即workers数组对应的位置 int worker_id; }server;
该结构体在初始化时,会读取配置文件(日记05),创建内存池(日记02),初始化连接集合(日记08),以及创建一些工作进程(默认10个)。而在服务器结束时,server结构体会调用释放函数,把antweb所占有的内存全部归还给系统。
该操作的函数实现:
server* server_init() { server *srv; srv = (server *)calloc(1,sizeof(server)); srv->conf = configure_init(); srv->mpool = mempool_create(); srv->cons = connection_array_init(); srv->workers = (worker*)calloc(10,sizeof(worker)); return srv; } void server_free(server * srv) { configure_free(srv->conf); connection_array_free(srv->mpool,srv->cons); mempool_free(srv->mpool); free(srv); }
相关文章推荐
- Seafile Server本地权限提升漏洞(CVE-2014-5443)
- 从USB安装Ubuntu Server 10.04.3 图文详解
- 使用zabbix监控Nginx活动状态--Part1
- 高效访问Internet-启用ISA Server的缓存
- windows server域用户提升到本地更高权限组中的方法
- 完美解决SQL Server 安装问题:以前的某个程序安装已在安装计算机上创建挂起的文件操作
- IIS 错误 Server Application Error 详细解决方法
- 在WINXP系统上安装SQL Server企业版的方法
- SQL Server 存储过程的分页
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程
- SQL server 表操作介绍
- SQL Server 2000 注入防护大全(二)
- SQL Server 2000 注入防护大全(一)
- 怎样把Windows server 2003转换成工作站系统
- Windows Server 2007四月CTP发布 下载
- IIS运行错误 Server Application Error 错误代码 Error: 8004的解决方法
- Microsoft SQL Server 2008安装图解教程(Windows 7)
- ASP基础入门第十篇(ASP内建对象Server)
- ISA Server 的故障排除工具(2)