Skip to content

wanghes/Cpp11WebServer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
项目目的 并发模型 核心类 整体架构 主要函数 遇到的问题 并发测试 相关知识

About

A High Performance HTTP Web Server in C++11

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 69.1%
  • C 20.6%
  • Makefile 5.2%
  • Roff 4.0%
  • Other 1.1%