轻量web服务器开发日记10-server结构体的实现
来源:互联网 发布:北京软件工程学院地址 编辑:程序博客网 时间:2024/04/29 03:46
server结构体在antweb起到非常重要的作用,它主要记录着整个服务器在运行的信息,其中包括监听套接字、mempool内存池、配置信息、请求连接集合、以及工作进程集合等等。
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);}
0 0
- 轻量web服务器开发日记10-server结构体的实现
- 轻量web服务器开发日记03-bufstr结构体的实现
- 轻量web服务器开发日记04-buffile结构体的实现
- 轻量web服务器开发日记06-request结构体的实现
- 轻量web服务器开发日记07-response结构体的实现
- 轻量web服务器开发日记08-connection_array结构体的实现
- 轻量web服务器开发日记05-配置文件的实现
- 轻量web服务器开发日记02-mempool内存池的实现
- 轻量web服务器开发日记09-日志文件的实现
- 轻量web服务器开发日记01-antweb服务器介绍
- 自己使用的一个.NET轻量开发结构
- Python with Django 充满活力的轻量Web开发平台
- “轻’”而不“薄”的轻量应用服务器初使用体验
- “轻’”而不“薄”的轻量应用服务器初使用体验
- wangEditor 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费
- 5款移动开发轻量jQuery的替代品
- 原生JS开发的轻量简便星级评分
- 用 Swift 实现轻量的属性监听系统
- iOS 自定义照相机
- HTTP协议及报文分析
- ML数学之矩阵奇异值分解及其应用
- canvas刮刮卡在三星s3和一些android4.1系统的手机上不能使用的问题
- 输入必须是数字,非数字不能输入,正则表达式
- 轻量web服务器开发日记10-server结构体的实现
- 进程间通信之共享内存(Share Memory)
- 垃圾收集器
- 一起来学Android Studio:(五)导入 jar 包和第三方开源库方法
- HANA MODEL 创建schema、表,向表导入数据
- IOS 自定义 无限图片轮播器开源库
- 解决:安装Android Studio 2.0后无法查看源码
- Python 字符学习1
- Redis集群增删节点