C++高性能网络服务保姆级教程

为什么写这个教程?

最近在学C++,翻了几次菜鸟教程后,想写个项目练练手。之前了解过ngrok,一个内网穿透工具,简单讲就是在内网中部署自己的服务,通过这个工具,可以让公网上的用户访问到服务。

之前看了部分源码,想把自己的一些优化想法用C++实现一下,所以断断续续花了2个多月写了C++版本的CProxy

写的过程中不断充实C++的相关知识(不得不说C++的特性是真的多。。。),同时也对网络底层有了更深的了解,比如一个连接如何复用?如何处理数据传输的逻辑?如何处理链接的断开?

写下这个教程有以下两个目的:

  • 复盘整个项目有没有可以优化的地方。
  • 巩固CProxy实现过程中学到的知识。
  • 达到自己年头给自己定的写一个系列文章的flag。

教程适用哪些读者?

我希望的是有一点C++基础和网路基础的读者就能看懂学到一些东西。当然肯定有些地方可能会写的不清楚,读者可以留言谈论,有空一定回复,并完善文章。

整个项目会涉及到IO多路复用、多线程Reactor模型、零拷贝、网络底层数据传输处理等方面,我会在对应章节上附上自己之前参考的文章,帮助读者理解。

教程食用姿势

有能力的大佬可以先看看CProxy的代码,自认能力一般,水平有限,如果发现有bug或者有更好的实现欢迎提issue或PR。

https://github.com/lzs123/CProxy.git

教程暂定有以下内容:

  1. 一切从最简单的socket说起,介绍一次socket连接的过程
  2. 聊聊代码编译和格式化,主要介绍cmake、clang、clang-format的使用和注意事项,并结合到项目中使用
  3. IO多路复用和Reactor多线程模型
  4. 内网的业务服务被外网访问的整个数据流
  5. 使用splice零拷贝减少数据复制
  6. 连接管理:如何复用、维护、优雅断开

更新进度

day01-从一个基础的socket服务说起

day02 真正的高并发还得看IO多路复用

day03 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)

day04 高性能服务设计思路

day05 多线程实现都需要注意什么?

如果本文对你有用,点个赞再走吧!或者关注我,我会带来更多优质的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值