Consolexin's blog Consolexin's blog
首页
  • 算法基础

    • 图论
    • 字符串
    • 动态规划
    • 二分
    • 滑动窗口
    • 排序
  • Project

    • CppServer
  • 相关书籍

    • 现代C++编程
  • 书籍

    • SQL必知必会
    • MySQL必知必会
分类
标签
归档
GitHub (opens new window)

Consolexinhun

小学生
首页
  • 算法基础

    • 图论
    • 字符串
    • 动态规划
    • 二分
    • 滑动窗口
    • 排序
  • Project

    • CppServer
  • 相关书籍

    • 现代C++编程
  • 书籍

    • SQL必知必会
    • MySQL必知必会
分类
标签
归档
GitHub (opens new window)
  • README
  • day01-从一个最简单的socket开始
  • day02-不要放过任何一个错误
  • day03-高并发还得用epoll
  • day04-来看看我们的第一个类
  • day05-epoll高级用法-Channel登场
  • day06-服务器与事件驱动核心类登场
  • day07-为我们的服务器添加一个Acceptor
  • day08-一切皆是类,连TCP连接也不例外
  • day09-缓冲区-大作用
  • day10-加入线程池到服务器
  • day11-完善线程池,加入一个简单的测试程序
  • day12-将服务器改写为主从Reactor多线程模式
  • day13-支持业务逻辑自定义、完善Connection类
  • day14-重构核心库、使用智能指针
  • day15-重构Connection、修改生命周期
  • day16-使用CMake工程化
  • day17-使用EventLoopThreadPool、移交EventLoop
  • day18-HTTP有限状态转换机
  • day19-创建HTTP响应,实现HTTP服务器
  • day20-定时器的创建使用
  • day21-服务器主动关闭连接
  • day22-初步涉及日志库,定义自己的输出流LogStream
  • day23-定义前端日志库,实现同步输出
  • day24-异步日志库
  • day25-更有效的缓冲区
  • day26-监听写事件
  • day27-处理静态文件,实现POST请求
  • day28-文件服务器的简单实现,文件的展示和下载
  • day29-文件的上传
  • day30-WebBench的测试
  • CppServer
consolexinhun
2025-04-20

README

# 30天自制C++服务器

源仓库地址 (opens new window)

本文主要是狗尾续貂,对原仓库的后续工作进行了简单的处理,由于本人能力有限,在原仓库的基础上专注于功能的实现,并进行了自我改造,前day01至day12与源仓库相同,后续为相应的改编。

现在大致上就已经完成了该内容,在原有的基础上补足了HTTP协议的解析,异步日日志库模块和定时器模块。并使用文件上传和下载进行了简单的应用。由于水平不足,里面可能充斥着各种各样的问题,但是确实一点点仿照着原仓库整完了,关于文件的上传和下载,可以说写的非常简陋,里面bug应该很多,应用场景也几乎没有。后续可能还需要进行增加和修订,但是现在还需要增加理论基础。

在进行编写时,可以重新创建一个仓库,并在当前教程进行commit后,将后一个教程进行覆盖以查看下一个教程所进行的修改。

day01-从一个最简单的socket开始 (opens new window)

day02-不要放过任何一个错误 (opens new window)

day03-高并发还得用epoll (opens new window)

day04-来看看我们的第一个类 (opens new window)

day05-epoll高级用法-Channel登场 (opens new window)

day06-服务器与事件驱动核心类登场 (opens new window)

day07-为我们的服务器添加一个Acceptor (opens new window)

day08-一切皆是类,连TCP连接也不例外 (opens new window)

day09-缓冲区-大作用 (opens new window)

day10-加入线程池到服务器 (opens new window)

day11-完善线程池,加入一个简单的测试程序 (opens new window)

day12-将服务器改写为主从Reactor多线程模式 (opens new window)

day13-支持业务逻辑自定义、完善Connection类 (opens new window)

day14-重构核心库、使用智能指针 (opens new window)

day15-重构Connection、修改生命周期 (opens new window)

day16-使用CMake工程化 (opens new window)

day17-使用EventLoopThreadPool、移交EventLoop (opens new window)

day18-HTTP有限状态转换机 (opens new window)

day19-创建HTTP响应,实现HTTP服务器 (opens new window)

day20-定时器的创建使用 (opens new window)

day21-服务器主动关闭连接 (opens new window)

day22-初步涉及日志库,定义自己的输出流LogStream (opens new window)

day23-定义前端日志库,实现同步输出 (opens new window)

day24-异步日志库 (opens new window)

day25-更有效的缓冲区 (opens new window)

day26-监听写事件 (opens new window)

day27-处理静态文件,实现POST请求 (opens new window)

day28-文件服务器的简单实现,文件的展示和下载 (opens new window)

day29-文件的上传 (opens new window)

day30-WebBench的测试 (opens new window)

编辑 (opens new window)
上次更新: 2025/05/21, 06:42:57
day01-从一个最简单的socket开始

day01-从一个最简单的socket开始→

最近更新
01
6-其他操作
05-20
02
4-联结
05-20
03
7-管理
05-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Consolexinhun | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×