Cpp11WebServer
A High Performance HTTP Web Server in C++11
Install / Use
/learn @zhangwenxiao/Cpp11WebServerREADME
SWINGS WebServer
简介
SWINGS是用C++11实现的高性能Web服务器,可处理静态资源请求,支持HTTP长连接及超时断开
代码统计

开发工具
- 操作系统: Ubuntu18.04LTS
- 编译器: vim + vscode + sublime
- 编译器: g++ 7.3.0
- 版本控制: git
- 工程构建: make
- 调试工具: gdb
- 压测工具: webbench
使用方式
git clone git@github.com:zhangwenxiao/swings.git
cd code
make
sh run.sh
技术要点
- 并发模型为Reactor
- 使用Epoll水平触发+EPOLLONESHOT,非阻塞IO
- 为充分利用多核CPU的性能,以多线程的形式实现服务器,并实现线程池避免线程频繁创建销毁造成的系统开销
- 实现基于小根堆的定时器,用于断开超时连接
- 实现可以自动增长的缓冲区,作为HTTP连接的输入和输出缓冲区
文档
| Part I | Part II | Part III | Part IV | Part V | Part VI | Part VIII | Part IX | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | |项目目的|并发模型|核心类|整体架构|主要函数|遇到的问题|并发测试|相关知识|
Related Skills
node-connect
348.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
