web server
web server
高二的笔记
这个人很懒,什么都没有写。
展开
-
【web server】基于升序链表的定时器
基于升序链表的定时器原创 2022-09-17 10:36:35 · 390 阅读 · 0 评论 -
【web server】HTTP协议如何解析or封装
状态机解析封装HTTP协议整体思路流程。原创 2022-09-13 22:39:47 · 332 阅读 · 0 评论 -
【web server】整体流程解析
启动选项可以选择是否以守护进程的方式运行,以及指定监听的端口号,若不指定端口号,则默认监听在配置文件。,初始化线程池,定时器等。其中可读可写事件,均采用proactor模式,即主线程负责读写,工作线程负责处理业务逻辑。协议,以及定时器如何关闭长事件不活跃的连接,就可以单独作为一个模块,之后的文章将会总结。流程图非常清晰,开始时初始化日志系统,记录程序运行中产生的日志信息,通过。首先处理(解析)读来的数据,当发现该请求需要返回时,执行写操作,修改该。对于四种事件,分别去做不同的处理。可写,便执行写操作。原创 2022-09-11 10:42:06 · 730 阅读 · 0 评论 -
【web server】日志系统
webserver采用异步日志系统:逻辑:创建一个线程,不断读消息队列(数组实现的循环队列)中的消息,写入日志文件;需要写日志时,将消息写在消息队列中即可。Log类中维护一个消息队列和互斥锁,当对消息队列进行出队、入队操作前后,先进行加锁解锁操作。消息队列中维护一个数组、互斥体和条件变量。线程循环等待队列有消息:void async_write_log() { string log; while (!m_log_queue->empty()) { //阻塞在这里等队列不为空 m_m原创 2022-05-19 15:05:28 · 725 阅读 · 0 评论 -
【web server】项目中的一些小点
本篇记录项目中的一些小点,比如支持读取配置文件,命令行读取参数等。读取配置文件程序运行中用到的一些参数,首先会读取配置文件中的配置,若在程序运行时指定了参数,按指定的参数运行,首先来看读取配置文件:配置文件是server.conf文件,配置项按照key:value的方式书写,比如:PORT:8080THREADNUM:8端口号为8080,线程数为8。来看一下读取配置文件的类Config中的关键代码:void Config::readConfigFile(){ char *pLin原创 2022-05-13 16:36:03 · 167 阅读 · 0 评论