myWebserver 介绍
项目总结
项目准备过程中,主要阅读了《Linux 高性能服务器编程》游双 一书。源码参考的是:TinyWebServer,我在此源码的基础上做了一定的优化和修改。
我的代码:Github: myWebserver: 我的C++服务器项目
我的 Webserver 项目总结:WebServer 项目解读 / 代码分析 / 改进
我的《Linux 高性能服务器编程》学习笔记:《Linux 高性能服务器编程》总结_红茶川的博客-CSDN博客
我的 CSDN 博客:红茶川-CSDN博客,上面同步更新了所有内容。
《Linux 高性能服务器编程》学习笔记
书本中的样例代码
书中的部分样例代码,我都在笔记中给出了可以运行的代码,大家可以编译运行一下看看效果。
所有代码我都放在了 Github 仓库:《Linux 高性能服务器编程》—游双,阅读笔记及相关代码
完整笔记:《Linux 高性能服务器编程》总结_红茶川的博客-CSDN博客
实战 1:TCP通信实现(服务器端和客户端)
实战 2:使用 MSG_OOB 选项发送带外数据
实战 3:实现一个简单的 CGI 服务器
实战 4:测试 UID 和 EUID 的区别
实战 5:使用 setsid() 创建一个新的会话和进程组
实战 6:select 调用同时接收普通数据和带外数据
实战 7:使用 SIGURG 信号检测带外数据是否到达
实战 8:使用 SO_SNDTIMEO 选项设置定时
实战 9:利用 alarm 函数周期性触发 SIGALRM 信号
实战 10:利用 Libevent 库实现一个“Hello World”程序
实战 11:在进程间传递文件描述符
实战 12:死锁举例
实战 13:使用条件变量模拟实现生产者—消费者问题
实战 14:多线程环境中,使用fork调用产生的死锁问题
实战 15:在一个线程中统一处理所有信号
实战 16:用进程池实现简单的 CGI 服务器
第一篇 前置知识 TCP / IP 协议
1. IP协议
2. TCP协议
3. 访问一个网页的全过程
第二篇 深入解析高性能服务器编程
4. Linux网络编程基础API
5. 高级 I/O 函数
6. Linux服务器程序规范
7. 高性能服务器程序框架
7. 高性能服务器程序框架
8. I/O 复用
9. 信号
10. 定时器
11. 高性能I/O框架库Libevent
12. 多进程编程
14. 进程池和线程池
14. 进程池和线程池
第三篇 高性能服务器优化与监测
15. 服务器调制、调试和测试
参考
TinyWebServer

GitHub地址:https://github.com/qinguoyi/TinyWebServer
- 小白视角:一文读懂社长的TinyWebServer
- 最新版Web服务器项目详解 - 01 线程同步机制封装类
- 最新版Web服务器项目详解 - 02 半同步半反应堆线程池(上)
- 最新版Web服务器项目详解 - 03 半同步半反应堆线程池(下)
- 最新版Web服务器项目详解 - 04 http连接处理(上)
- 最新版Web服务器项目详解 - 05 http连接处理(中)
- 最新版Web服务器项目详解 - 06 http连接处理(下)
- 最新版Web服务器项目详解 - 07 定时器处理非活动连接(上)
- 最新版Web服务器项目详解 - 08 定时器处理非活动连接(下)
- 最新版Web服务器项目详解 - 09 日志系统(上)
- 最新版Web服务器项目详解 - 10 日志系统(下)
- 最新版Web服务器项目详解 - 11 数据库连接池
- 最新版Web服务器项目详解 - 12 注册登录
- 最新版Web服务器项目详解 - 13 踩坑与面试题
其他参考
- 什么是 web 服务器? - 学习 Web 开发 | MDN
- 基于 Linux 的 web 服务器_基于linux系统的webserve服务器开发-CSDN博客
- 代码随想录项目精讲系列-webserver.pdf 密码:
- Linux高性能服务器编程.pdf
- 从零开始自制实现C++ High-Performance WebServer 全流程记录_c++ webserver项目 速成-CSDN博客
- 从零开始实现C++ TinyWebServer_JehanRio的博客-CSDN博客
相关文章:
myWebserver 介绍
项目总结 项目准备过程中,主要阅读了《Linux 高性能服务器编程》游双 一书。源码参考的是:TinyWebServer,我在此源码的基础上做了一定的优化和修改。 我的代码:Github: myWebserver: 我的C服务器项目 我的 Webserver 项目总结&…...
钉钉平台开发小程序
一、下载小程序开发者工具 官网地址:小程序开发工具 - 钉钉开放平台 客户端类型 下载链接 MacOS x64 https://ur.alipay.com/volans-demo_MiniProgramStudio-x64.dmg MacOS arm64 https://ur.alipay.com/volans-demo_MiniProgramStudio-arm64.dmg Windows ht…...
九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图
近日,九识智能与徐工汽车签署战略合作协议,标志着双方在智能驾驶技术与新能源商用车融合应用、联合生产及市场推广等方面迈入深度合作的新篇章,将共同引领智能驾驶技术商业化浪潮。 近年来,在国家智能化发展战略的引领下ÿ…...
Serverless + AI 让应用开发更简单
本文整理自 2024 云栖大会,阿里云智能高级技术专家,史明伟演讲议题《Serverless AI 让应用开发更简单》 随着云计算和人工智能(AI)技术的飞速发展,企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在…...
外包功能测试就干了4周,技术退步太明显了。。。。。
先说一下自己的情况,大专生,21年通过校招进入武汉某软件公司,干了差不多3个星期的功能测试,那年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我才在一个外包企业干了4周的功…...
外观模式及运用场景
外观模式(Facade Pattern)是一种结构性设计模式,它为复杂子系统提供一个统一的接口,从而简化与这些子系统的交互。通过外观模式,客户端可以更轻松地使用复杂系统,而不必了解其内部实现。接下来,…...
PyQt5实战——多脚本集合包,UI以及工程布局(二)
个人博客:苏三有春的博客 系列往期: PyQt5实战——多脚本集合包,前言与环境配置(一) 布局 2.1 UI页面布局 整体框架分为分为三个部分,垂直分布。 第一个部分为功能选择按钮(如UTF-8转换&#…...
Python 数据结构对比:列表与数组的选择指南
文章目录 💯前言💯Python中的列表(list)和数组(array)的详细对比1. 数据类型的灵活性2. 性能与效率3. 功能与操作4. 使用场景5. 数据结构选择的考量6. 实际应用案例7. 结论 💯小结 💯…...
gem5运行简单RISC-V全系统模拟
简单记录gem5中运行最简单的RISC-V Full System Simulation的过程 首先是编译RISC-V和m5term,这部分不多写了,官网均有对应教程。 之后直接使用官方在configs/example/gem5_library目录下的riscv-fs.py 运行如下命令 ./build/RISCV/gem5.opt configs/…...
洛谷 P1195 口袋的天空
自用。 题目传送门:口袋的天空 - 洛谷 题解:Inori_333 参考题解:题解 P1195 【口袋的天空】 - 洛谷专栏 /*P1195 口袋的天空https://www.luogu.com.cn/problem/P11952024/11/03 submit:inori333 */#include <iostream> #include &…...
ffmpeg视频滤镜:膨胀操作-dilation
滤镜介绍 dilation 官网链接 > FFmpeg Filters Documentation 膨胀滤镜会使图片变的更亮,会让细节别的更明显。膨胀也是形态学中的一种操作,在opencv中也有响应的算子。此外膨胀结合此前腐蚀操作,可以构成开闭操作。 开操作是先腐蚀…...
3.3 windows,ReactOS系统中页面的换出----2,结构体PHYSICAL_PAGE
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…...
lvgl
lvgl 目录 lvgl Lvgl移植到STM32 -- 1、下载LVGL源码 -- 2、将必要文件复制到工程目录 -- 3、修改配置文件 将lvgl与底层屏幕结合到一块 -- lvgl也需要有定时器,专门给自己做了一个函数,告诉lvgl经过了多长时间(ms(毫秒)级别) 编写代码 lvgl的中文教程手册网站…...
【django】RESTful API 设计指南
目录 一、协议 二、域名 三、版本(Versioning) 四、路径(Endpoint) 五、HTTP动词 5.1 CRUD操作: 5.2 其他动词: 六、过滤信息(Filtering) 七、状态码(Status Co…...
提升大数据量分页查询性能:深分页优化全解
前言 在处理数据量逐渐增大的数据库表时,优化查询性能是一个常见的挑战。朋友们可能会建议说,创建索引不就能解决问题了吗?然而,当数据量达到相当规模时,简单的索引可能不足以应对所有情况。这时,可能会有…...
WPF 实现冒泡排序可视化
WPF 实现冒泡排序可视化 实现冒泡排序代码就不过多讲解,主要是实现动画效果思路,本demo使用MVVM模式编写,读者可自行参考部分核心代码,即可实现如视频所示效果。 对于新手了解算法相关知识应该有些许帮助,至于其它类型…...
Claude 3.5 新功能 支持对 100 页的PDF 图像、图表和图形进行可视化分析
Claude 3.5 Sonnet发布PDF图像预览新功能,允许用户分析长度不超过100页的PDF中的视觉内容。 此功能使用户能够轻松上传文档并提取信息,特别适用于包含图表、图形和其他视觉元素的研究论文和技术文档。 视觉PDF分析:用户现在可以从包含各种视觉…...
正式开源:从 Greenplum 到 Cloudberry 迁移工具 cbcopy 发布
Cloudberry Database 作为 Greenplum 衍生版本和首选开源替代,由 Greenplum 原始团队成员创建,与 Greenplum 保持原生兼容,并能实现无缝迁移,且具备更新的 PostgreSQL 内核和更丰富的功能。GitHub: https://github.com/cloudberry…...
Python如何读写文件?
1. 文件读取 (1)使用open()函数打开文件 基本语法是file_object open(file_name, mode),其中file_name是要打开的文件的名称(包括路径,如果文件不在当前目录下),mode是打开文件的模式。例如&a…...
100种算法【Python版】第38篇——Boyer-Moore算法
本文目录 1 算法说明2 算法示例3 python代码1 算法说明 Boyer-Moore算法由Robert S. Boyer和J. Strother Moore于1977年提出,旨在提高字符串匹配的效率。该算法在寻找固定模式的过程中,利用模式本身的信息,优化搜索过程,特别适合长文本中的模式查找。 算法原理 Boyer-Moo…...
Mac运行CORE Keygen受阻?巧用UPX与brew轻松解包
1. 当Mac遇到CORE Keygen无法运行时该怎么办? 最近有不少朋友在Mac上运行CORE Keygen时遇到了问题,双击应用图标后要么毫无反应,要么直接弹出"无法打开"的提示。这种情况其实很常见,特别是对于一些特殊用途的应用程序。…...
避坑指南:QGraphicsView自适应缩放时,为什么你的Item总对不齐或留白?
避坑指南:QGraphicsView自适应缩放时Item对齐与留白问题深度解析 在Qt图形界面开发中,QGraphicsView框架因其强大的2D显示能力被广泛应用。但当开发者尝试实现视图内容的自适应缩放时,经常会遇到一个令人头疼的问题——调用fitInView后&#…...
CommonJS、RequireJS 与 ES6 模块:JavaScript 模块化演进史
JavaScript 诞生之初并没有模块化机制。随着应用规模扩大,全局变量冲突、依赖管理混乱等问题日益突出。社区和标准组织先后推出了多种模块化方案,其中最著名的是 CommonJS(主要用于服务器端)、AMD / RequireJS(主要用于浏览器端)以及 ES6 Module(官方标准)。 CommonJS、…...
WeatherBench终极指南:快速构建天气预报AI模型的完整基准平台
WeatherBench终极指南:快速构建天气预报AI模型的完整基准平台 【免费下载链接】WeatherBench A benchmark dataset for data-driven weather forecasting 项目地址: https://gitcode.com/gh_mirrors/we/WeatherBench WeatherBench是一个专为数据驱动天气预报…...
用STM32CubeMX和HAL库,5分钟搞定Nooploop TOFSense激光测距模块的串口通信
基于STM32CubeMX与HAL库的TOFSense激光测距快速开发指南 激光测距技术在工业自动化、机器人导航等领域应用广泛,而Nooploop的TOFSense模块凭借其高精度和小型化特点,成为许多嵌入式开发者的首选。本文将手把手带你使用STM32CubeMX和HAL库,在5…...
如何高效配置Cool Request插件:Spring Boot接口调试的终极实践指南
如何高效配置Cool Request插件:Spring Boot接口调试的终极实践指南 【免费下载链接】cool-request IDEA API、Java Method debug tools 项目地址: https://gitcode.com/gh_mirrors/co/cool-request Cool Request是一款专为IntelliJ IDEA设计的强大HTTP接口调…...
如何用DS4Windows让PS4手柄在PC上完美运行?3步解锁专业游戏体验
如何用DS4Windows让PS4手柄在PC上完美运行?3步解锁专业游戏体验 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾经想过在PC上使用心爱的PS4手柄玩游戏,却发…...
AI商品计划:中国鞋服零售如何用机器学习解决库存与周转难题
过去十年,中国鞋服零售经历了从线下到线上、从粗放铺货到精准运营的剧烈转变。但一个老问题始终没变:该备多少货,备在哪,备什么颜色尺码。备多了,资金压在仓库,季末折扣吞噬利润;备少了…...
别再手动一个个改了!用PowerCLI脚本5分钟批量搞定VMware虚拟机网卡升级(ESXi 7.0实测)
5分钟极速升级:PowerCLI全自动批量替换VMware虚拟机网卡实战指南 每次ESXi版本升级后,总有一堆历史遗留问题等着处理——比如那些性能拉胯的E1000网卡。上周我负责的金融客户集群刚完成ESXi 7.0迁移,结果压测时发现300台虚拟机里竟有192台还在…...
如何解决神界原罪2模组冲突问题:Divinity Mod Manager终极指南
如何解决神界原罪2模组冲突问题:Divinity Mod Manager终极指南 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager Divinity Mod Manag…...
