轻量web服务器开发日记10-server结构体的实现

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值