![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
webserver
文章平均质量分 88
hongyuyahei
这个作者很懒,什么都没留下…
展开
-
12 注册登录
使用数据库连接池实现服务器访问数据库的功能,使用POST请求完成注册和登录的校验工作。原创 2023-08-14 22:36:42 · 317 阅读 · 0 评论 -
11 数据库连接池
池可以看作资源的容器,所以多种实现方法,比如数组、链表、队列等。这里,使用单例模式和链表创建数据库连接池,实现对数据库连接资源的复用。项目中的数据库模块分为两部分,其一是数据库连接池的定义,其二是利用连接池完成登录和注册的校验功能。具体的,工作线程从数据库连接池取得一个连接,访问数据库中的数据,访问完毕后将连接交还连接池。在获取连接时,通过有参构造对传入参数进行修改。数据库连接本身是指针类型,所以参数需要通过双指针才能对其进行修改。原创 2023-08-08 00:40:53 · 148 阅读 · 0 评论 -
10 日志系统(下)
日志文件局部变量的懒汉模式获取实例生成日志文件,并判断同步和异步写入方式同步判断是否分文件直接格式化输出内容,将信息写入日志文件异步判断是否分文件格式化输出内容,将内容写入阻塞队列,创建一个写线程,从阻塞队列取出内容写入日志文件.通过局部变量的懒汉单例模式创建日志实例,对其进行初始化生成日志文件后,格式化输出内容,并根据不同的写入方式,完成对应逻辑,写入日志文件。公有的实例获取方法初始化日志文件方法异步日志写入方法,内部调用私有异步方法内容格式化方法刷新缓冲区。原创 2023-08-06 00:20:10 · 172 阅读 · 0 评论 -
09 日志系统(上)
使用单例模式创建日志系统,对服务器运行状态、错误信息和访问数据进行记录,该系统可以实现按天分类,超行分类功能,可以根据实际情况分别使用同步和异步写入两种方式。异步写入方式,将生产者-消费者模型封装为阻塞队列,创建一个写线程,工作线程将要写的内容push进队列,写线程从队列中取出内容,写入日志文件。日志系统大致可以分为两部分,其一是单例模式与阻塞队列的定义,其二是日志类的定义与使用。原创 2023-08-05 21:09:02 · 210 阅读 · 0 评论 -
08 定时器(下)
定时器处理非活动连接模块,分为定时方法与信号通知流程;定时器及其容器设计、定时任务的处理。,将连接资源与定时事件等封装起来,具体包括连接资源、超时时间和回调函数,回调函数指向定时事件。,将多个定时器串联组织起来统一处理,具体包括升序链表设计。,该函数封装在容量类中,函数遍历升序链表容器,根据超时时间,处理对应的定时器。,通过代码分析,如何在项目中使用定时器。原创 2023-08-02 23:38:19 · 78 阅读 · 0 评论 -
07 定时器处理非活动连接(上)
本项目中,服务器主循环为每一个连接创建一个定时器,并对每个连接进行定时。另外,利用升序时间链表容器将所有容器串联起来,若主循环接收到定时通知,则在链表中依次执行定时任务。sokcet选项SO_RECVTIMEO和SO_SNDTIMEOSIGALRM信号I/O复用系统调用的超时参数三种方法没有一劳永逸的应用场景,也没有绝对的优劣。项目中使用的是SIGALRM信号。原创 2023-07-31 23:01:57 · 491 阅读 · 0 评论 -
06 HTTP(下)
介绍服务器如何响应请求报文,并将该报文发送给浏览器端。介绍一些基础API,然后结合流程图和代码对服务器响应请求报文进行详解。,介绍stat、mmap、iovec、writev。,描述服务端响应请求报文的逻辑,各模块间的关系。,结合代码对服务器响应请求报文进行详解。原创 2023-07-31 18:10:52 · 966 阅读 · 0 评论 -
02 半同步半反应堆线程池
线程处理函数和运行函数设置为私有属性。原创 2023-07-13 23:04:48 · 561 阅读 · 0 评论 -
05 http连接处理(中)
因此,增加改语句,并在完成消息体解析后,将line_status变量更改为LINE_OPEN,可以跳出循环,完成报文解析任务。主状态机初始状态是CHECK_STATE_REQUESTLINE,通过调用从状态机来驱动主状态机,在主状态机进行解析前,从状态机已经将每一行末尾\r\n符号改为\0\0,以便于主状态机直接取出对应字符串进行处理。在报文中,请求头和空行的处理使用的同一个函数,这里通过当前的text首位是不是\0字符,若是,则表示当前处理的是空行,若不是,则表示当前处理的是请求头。原创 2023-07-30 23:43:47 · 429 阅读 · 0 评论 -
04 http连接处理(上)
基础知识:epoll、http报文格式、状态码和有限状态机代码:对服务端处理http请求的全部流程进行简要介绍,然后结合代码对http类及请求接收进行详细分析。原创 2023-07-30 20:29:06 · 501 阅读 · 0 评论