C++高性能网络服务保姆级教程
2022-04-24 21:45
2031 查看
为什么写这个教程?
最近在学C++,翻了几次菜鸟教程后,想写个项目练练手。之前了解过ngrok,一个内网穿透工具,简单讲就是在内网中部署自己的服务,通过这个工具,可以让公网上的用户访问到服务。
之前看了部分源码,想把自己的一些优化想法用C实现一下,所以断断续续花了2个多月写了C版本的CProxy。
写的过程中不断充实C的相关知识(不得不说C的特性是真的多。。。),同时也对网络底层有了更深的了解,比如一个连接如何复用?如何处理数据传输的逻辑?如何处理链接的断开?
写下这个教程有以下两个目的:
- 复盘整个项目有没有可以优化的地方。
- 巩固CProxy实现过程中学到的知识。
- 达到自己年头给自己定的写一个系列文章的flag。
教程适用哪些读者?
我希望的是有一点C++基础和网路基础的读者就能看懂学到一些东西。当然肯定有些地方可能会写的不清楚,读者可以留言谈论,有空一定回复,并完善文章。
整个项目会涉及到IO多路复用、多线程Reactor模型、零拷贝、网络底层数据传输处理等方面,我会在对应章节上附上自己之前参考的文章,帮助读者理解。
教程食用姿势
有能力的大佬可以先看看CProxy的代码,自认能力一般,水平有限,如果发现有bug或者有更好的实现欢迎提issue或PR。
https://github.com/lzs123/CProxy.git
教程暂定有以下内容:
- 一切从最简单的socket说起,介绍一次socket连接的过程
- 聊聊代码编译和格式化,主要介绍cmake、clang、clang-format的使用和注意事项,并结合到项目中使用
- IO多路复用和Reactor多线程模型
- 内网的业务服务被外网访问的整个数据流
- 使用splice零拷贝减少数据复制
- 连接管理:如何复用、维护、优雅断开
本教程的每个章节的代码会上传到CProxy-tutorial,star and fork, respect!!
更新进度
相关文章推荐
- ArcGIS教程:地理处理服务演示样例(河流网络)(三)
- ArcGIS教程:地理处理服务示例(河流网络)(二)
- EasySwoole+ElasticSearch打造高性能小视频服务系统(冒泡IT社区精品教程下载)
- 发布一个高性能的Reactor模式的C++网络库:evpp
- Linux-epoll 高性能网络服务应用
- 高性能C++网络库libtnet实现:Connection
- 视频教程-Linux C++网络编程-C/C++
- C++ 高性能服务器网络框架设计细节
- [java高级篇]Java微服务架构Dubbo篇——款高性能JavaRPC框架(Java高级程序元架构师教程)
- 39套Java架构师/高级课/微服务/高并发/高性能/性能调优/电商缓存/并发编程/虚拟机视频教程
- 最新《尚硅谷Linux网络服务教程》
- 陈硕主讲 C++网络编程实践视频教程(共84课)
- [百晓生]-linux高性能网络服务程序
- 《LINUX操作系统管理与网络服务教程 李善军》pdf 附下载链接
- Netty 4.0.0.CR6 发布,高性能网络服务框架
- 大型C++网络游戏开发视频教程
- C++ 高性能服务器网络框架设计细节(转载)
- Nmap扫描教程之网络基础服务DHCP服务类
- 某某最全《EasySwoole+ElasticSearch打造高性能服务系统教程》
- C++高性能服务框架revolver:协议接口描述和翻译语言