C/C++网络编程实战训练营开营啦

C语言与CPP编程 2022-11-07 08:40

适合人群

  • 有一定 C 、C++ 或 C# 基础的同学;
  • 想深入系统地学习下网络编程的同学;
  • 想独立设计或者想掌握如何研究大型开源项目的网络框架的同学;
  • 网络编程知识存在夹生饭,但是又不知道如何补缺补差的同学;
  • 网络编程爱好者。

不适合人群

  • 提问问题态度恶劣,老气横秋的人;

  • 叶公好龙、三分钟热度的人;

  • 对自己不负责,懒于提高的人;

  • 把学习当做别人的事情,缺少主观能动性的人。

学完后,你将获得的技能

  • 规范的代码编写能力和源代码管理能力;

  • 熟悉 C++11/14/17 常用语法;

  • 系统性地掌握 C/C++ 网络编程知识体系;

  • 熟悉网络编程模型,可以写出商业的网络通信模块;

  • 拥有一定的网络故障排查能力;

  • 掌握 Visual Studio 开发工具的高级使用技巧和调试方法;

  • 掌握 Linux gdb 调试;

  • 熟悉前后端如何联调;

  • 熟悉客户端和服务器网络框架如何组织,模块如何规划,细节如何实现,每一行代码如何考究地写;

  • 拥有容易地看懂市面上常见的网络库的能力;

  • C++ 面试中,网络编程问题轻松回答。

训练营大纲

热身篇

  • 开场白——摸底学员参加此训练营的诉求和期望目标

  • 开发工具介绍

  • 如何学习网络编程

基础篇 1 —— C++语言新特性

C++11~C++17 新增的 88 个用于实战的特性。

在这个系列中,我将结合一些流行的开源代码,详细地讲解 C++11~ C++17 新增的一些功能和特性,这些功能和特性是建议大家在自己的项目中经常使用的。

涉及到的项目 uWebSockets、Filezilla、TeamTalk、Chrome 浏览器等。

基础篇 2 —— 网络编程基础

  • 阻塞模式与非阻塞模式,同步与异步模式

  • 精讲常用 socket 函数(socket、connect、bind、accept、send、recv 等)

  • 瑞士军刀 nc 命令

  • 常用的 Socket 选项

  • 域名解析

  • 字节序

  • 实战项目 1—— Flamingo 客户端网络框架解析

网络编程进阶 1 —— IO 复用模型

  • IO 复用函数之 select 函数
  • 实战项目 2 —— TeamTalk 客户端网络框架解析
  • IO 复用函数之 poll 函数
  • IO 复用函数之 epoll 函数
  • 实战项目 3—— uWebSocket 网络框架解析
  • 实战项目 4—— 一个简单的 httpserver 的实现
  • Windows 网络模型 WSAPoll 精讲、WSAEventSelect 模型精讲、WSAAsyncSelect 模型精讲
  • 实战项目 5 —— Filezilla 源码 0.2 版本网络框架解析
  • 实战项目 6 —— 网狐源码游戏大厅网络框架解析
  • 实战项目 7 —— 电驴源码网络框架解析
  • Windows 网络模型 —— 完成端口模型(IOCP)精讲
  • 实战项目 8 —— gh0st 远程控制软件服务端网络框架解析

网络编程进阶 2 —— 协议设计与进阶

  • 应用层协议如何设计
  • telnet 命令与 telnet 协议
  • SSH 协议详解
  • curl 命令与 tcpdump 命令详解
  • HTTP 协议详解
  • 实战项目 9 —— Nginx 源码之解析 HTTP 协议精讲
  • 实战项目 10 ——如何在 Visual Studio 中调试 Windows 版本的 Nginx 源码
  • 实战项目 11 —— 12306 刷票软件的开发
  • 实战项目 12 —— 通过 Redis 源码来分析 Redis 协议格式
  • 实战项目 13 —— 邮箱协议与实现一个邮箱报警功能
  • 实战项目 14 —— 文件传输 FTP 协议与 Filezilla 中的实现
  • 实战项目 15 —— 如何搭建 MySQL-Server 8.0 调试环境
  • TLV 格式设计
  • Google Protobuf 原理分析

网络编程高级篇  —— 网络框架组件设计

  • 阻塞模式的使用场景

  • 异步 connect 函数

  • 收发数据的正确姿势

  • 收发缓冲区的设计

  • 一个线程处理一个连接的结构设计

  • one thread one loop 结构

  • 定时器设计

  • 实战项目 16 —— libuv 源码精讲

  • 客户端网络框架如何组织

  • 服务端网络框架如何组织

  • 实战项目17 —— pcshare 远程控制软件网络框架解析

  • 实战项目 18 —— Flamingo Server 新版网络框架解析

  • 实战项目 19 —— TeamTalk 服务端网络框架解析

  • 实战项目 20 —— FileZilla 最新源码网络框架解析

网络编程补缺补差篇

  • 如何保证关闭连接前,数据可以发送出去
  • 心跳包机制如何设计
  • 断线重连机制如何设计
  • 超时机制如何设计
  • 拔网线问题
  • 网络故障排查与定位
  • 监控端口
  • 三次握手与四次挥手常见问题解析
  • 实战项目 21 —— P2P 网络项目实战
  • 实战项目 22 —— 手把手教你在 Windows 上调试 Chrome 浏览器源码
  • 聊一聊面试中常考的网络编程问题
  • 课程总结

涉及到的开发工具

  • Visual Studio 2022
  • Visual Studio Code
  • gcc 9.1、gdb 8.3 等

课程时间安排

  • 线上腾讯会议直播课,手把手辅导;

  • 尽量每周安排 2 ~ 3 次课,时间会提前与学员商定,课后提供录像、课件和源码;

  • 课程周期约 3 ~ 4 月;

  • 课程有专门的打卡交流群和知识星球;

  • 自开营日开始,后续一年内提供技术解答和全部训练营录像。

课程费用

课程定价 2500,报名人数每递增 5 位,单价增加 200。

有兴趣报名的同学,可加微信 easy_coder 咨询,非诚勿扰。

C语言与CPP编程 C语言/C++开发,C语言/C++基础知识,C语言/C++学习路线,C语言/C++进阶,数据结构;算法;python;计算机基础等
评论 (0)
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦