Marhoosh / webserver

linux简易服务器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

webserver

linux简易服务器

项目目的

Web服务器能够很好的贯穿所学的知识,之前看过的《C++ Primer》、《操作系统概念》、《STL源码剖析》、《图解TCP\IP》,涵盖了:

  • TCP、HTTP协议
  • 多进程多线程
  • IO
  • 通信
  • C++语法
  • 编程规范

在看完陈硕的《Linux多线程服务端编程》后,对相关的模块进行了优化

应用技术

Linux、C++、Socket、TCP

项目描述

此项目是基于 Linux 的轻量级多线程 Web 服务器,应用层实现了一个简单的 HTTP 服务器,实现了较高 的并发并支持静态资源访问

  1. 采用锁+信号量并运用生产者消费者模型处理线程池的工作队列
  2. 实现端口复用,防止服务器重启时之前绑定的端口还未释放
  3. 使用线程池+非阻塞 socket + epoll (ET 和 LT)的并发模型
  4. 使用状态机解析 HTTP 请求报文,支持解析 GET 请求

个人收获

个人对于进程与线程的区别、锁与信号量有了更清晰的认识,对于 TCP 和网络编程也有了一定的理解

About

linux简易服务器


Languages

Language:C++ 80.2%Language:C 12.1%Language:HTML 7.0%Language:Makefile 0.7%