![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CPP服务器
ColaForced
这个作者很懒,什么都没留下…
展开
-
CPP服务器08--http请求响应实现
http服务设计 对于静态页面服务器来说,其工作流程如下: - 接收客户端消息 - 解析出http请求报文 - 业务逻辑,拼装响应报文 - 发送给客户端结果 http连接类 设计目标: 将客户端唯一文件描述符封装,表示成一个连接实体. 从socket读报文–>buffer存储 给socket写报文–>buffer存储 解析逻辑-->进一步划分給子类去做 requests类 响应逻辑-->进一步划分給子类去做 response类 头文件 #ifndef HTTP_CONN_H #原创 2021-10-01 15:15:52 · 355 阅读 · 0 评论 -
CPP服务器07--服务器层次分析及其设计
IO复用EPOLL服务器设计 软件层次设计 WebServer :服务器逻辑框架: epoller监听+线程池读写 | | Epoller Timer :epoll操作封装, 定时器给连接计时 | | ---------- |原创 2021-10-01 14:00:12 · 154 阅读 · 0 评论 -
CPP服务器06--线程池实现(2)
线程池封装 说明: 上篇文章中的线程池,功能相对完整,有管理调度线程.但接口定义通用性差,需要修改,奈何目前水平不够,只能先找一个能用的替换,以后再改吧. 阅读建议: // std::thread :https://subingwen.cn/cpp/thread/ // std::function :https://blog.csdn.net/jinzhu1911/article/details/101307637 // template<typename F,typename…原创 2021-10-01 09:49:42 · 144 阅读 · 0 评论 -
CPP服务器05--线程池实现(1)
线程池封装 1 实现思路: 组件: pthread_t *workers; //工作线程数组 pthread_t manager; //管理者线程 TaskQueue *task_queue; //任务队列 思路: 多个工作线程,外部线程添加任务,结合阻塞任务队列实现生产消费者模型; 管理者线程负责工作线程的调度策略 比如说,存活数小于设定最大线程数且存在未执行任务,则创建线程 当忙碌线程小于当前存活线程数且,则进行线程销毁. 实现: 任务和任务队列 #i原创 2021-09-30 22:36:56 · 213 阅读 · 0 评论 -
CPP服务器04--Epoll反应器封装
Epoller反应器封装 实现思路: 容器:std::vector events_; 操作:对epoll创建,关闭,添加,修改,删除,等待进行封装 头文件 #ifndef EPOLLER_H #define EPOLLER_H #include <sys/epoll.h> //epoll_ctl() #include <fcntl.h> // fcntl() #include <unistd.h> // close() #include <assert.h&原创 2021-09-29 12:07:08 · 147 阅读 · 0 评论 -
CPP服务器02--字符读写缓冲区封装
字符读写缓冲区封装 功能需求: 对一个文件描述符进行读写操作,需要可自动调整大小的缓冲区 实现思路: 容器:std::vector buff 操作: 维护读写两个指针记录当前读写位置, 扩容:若写指针达到当前buff尾,且数据未读完 缩减:每次操作完成,重置缓冲区 头文件 #ifndef BUFFER_H #define BUFFER_H #include <cstring> //perror #include <iostream> #include <unis原创 2021-09-28 22:07:01 · 184 阅读 · 0 评论 -
CPP服务器01--阻塞队列的实现
阻塞队列 1. 实现原理: 1. 容器:std::queue<T> 2. 逻辑:使用一把互斥锁控制队列这个临界资源的访问; 使用条件变量控制入队出队操作(队满则入队阻塞,队空则出队阻塞); #include "../log/blockqueue.hpp" #include "pthread.h" #include <cstdlib> #include <ctime> #include <unistd.h> std::unique_ptr<Bloc原创 2021-09-27 22:00:36 · 174 阅读 · 0 评论