service.h

来自「类似apache2.0的多线程技术,目的在于解决网络服务器在并发客户数很大的情况」· C头文件 代码 · 共 60 行

H
60
字号
#ifndef _SERVICE_H#define _SERVICE_H#include <sys/types.h>#include <unistd.h>#include <semaphore.h>#define     MIN_IDLE        5#define     MAX_IDLE        10#define     MIN_IDLE_THREAD        1#define     MAX_IDLE_THREAD        2#define     MAX_PROC        1024#define     MAX_THREAD      32#define     MAX_REQUEST     500#define     I_NET           0       // internet套接字监听#define     U_DOMAIN        1       // unix域套接字监听#define     BOTH            2       // 两者均监听/* * 共享内存结构。 */struct ipc_mem {    int num;    // 进程总数    int idle;   // 空闲线程数    sem_t sem;  // 对num和idle进行加锁    sem_t sem_notify;  //子进程用来通知父进程需要创建新的进程};/* * 主进程配置参数  */struct server_info {    int type;           // 服务监听方式。    int port;           // i_net 方式下的端口    char path[256];     // u_domain 方式下套接字文件路径    int thread_num;     // 一个进程内的线程数    int max_service;    // 最大服务并发数};/* * 一些处理函数 */struct handler_info {    int (*main_handler)(int fd);    //应用协议主函数    int (*init_handler)();      //所有回话都需要的一些初始化操作    int (*exit_handler)();      //程序结束时清理操作};/* * 注意当thread_num > 1时,即在预分配、线程池模式下,han_info里的函数应线程安全。 */int start_server(struct server_info *ser_info, struct handler_info *han_info);#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?