你们公司的网站都备案了吗,网页与网站的区别和关系,苏州网站建设制作,设计师接私单从main主函数开始#xff1a;
一、定义MySQL数据库的账号、密码和用到的数据库名称。
二、调用Config获得服务器初始化属性 在这一步确定触发模式端口等信息。
三、创建服务器实例对象 设置根目录、开辟存放http连接对象的空间#xff0c;开辟定时器空间。
四、利用Confi…从main主函数开始
一、定义MySQL数据库的账号、密码和用到的数据库名称。
二、调用Config获得服务器初始化属性 在这一步确定触发模式端口等信息。
三、创建服务器实例对象 设置根目录、开辟存放http连接对象的空间开辟定时器空间。
四、利用Config里面的属性值初始化server的属性值
五、开启日志 选择同步日志还是异步日志。
六、初始化数据库连接池 这里需要把数据库中已有数据存到map中。
七、初始化线程池
八、设置监听和连接套接字的触发模式
九、初始化epoll实例 这里需要绑定监听文件描述符还要将监听文件描述符和管道的读端(0)设置信号忽略客户端断开连接的信号注册SIGALRM和SIGTERM信号。定时结束触发对应的回调函数将信号通过管道发送到epoll。
十、开始监听客户端连接 利用epoll_wait不断监听有以下六种情况 如果是新的客户端接受连接存储信息到user_timer设置定时器。 如果对端关闭了连接就执行回调函数并移除对应的计时器。 如果是管道传递了信号从读端读出信号解析信号并将值返回。 如果是接收到客户端数据如果是Reactor先检查timer是否超时是则需要调整然后将读事件提交到线程池improv是判断是否被其他线程处理如果已经超时了就触发删除定时器如果是Preactor立刻读取所有数据将套接字加入到线程池中等候处理如果有定时器就调整定时器读取数据失败就删除定时器。 如果是写事件类似读事件。 如果是到达超时时间了那么就查询定时器中已经到达时间的任务并执行。重新设置定时器。