这门课解决什么工作场景

很多做后端业务开发的程序员,习惯了直接用现成框架去处理接口请求,对底层网络通信往往是一知半解。一旦遇到连接异常断开、并发量上来后服务端卡死,或者需要对接底层硬件协议时,就会因为没有网络编程底子而抓瞎。这门C++ socket网络编程实战课,解决的就是这类需要直连底层网络通信的场景。它不是教你用别人封装好的网络库,而是带你从零写起,搞懂操作系统底层是怎么收发网络包的。课程最终落地的项目是一个支持PHP的HTTP服务器和一个syslog服务器,这意味着学完你能自己写底层服务端,去解析和处理真实的业务请求,而不是停留在只跑通控制台打印的玩具代码阶段。

适合什么基础与学习建议

这门课不适合完全没写过代码的零基础小白,你得有基本的C++语法功底,懂指针和面向对象,知道怎么编译运行程序。如果你之前只做过纯业务逻辑开发,没碰过系统层接口,这课正好能补上底层通信这一块。资料包里的内容编排很务实,建议先看前言里关于学习方法和环境配置的部分,把跨平台共享目录搭好,这是后续实操的基础。接着别急着敲代码,先看协议分层和抓包分析那几节,理解TCP和UDP在实际链路里长什么样。把这些基础概念吃透后,再进入具体的socket创建、跨平台移植环节,你会知道每行系统调用到底在操作网络协议栈的哪一层,而不是机械照抄。

学完能独立做什么与资料怎么配合

学完这套资料,你应当能独立开发跨平台的多线程网络服务端。具体来说,你能熟练处理Windows和Linux下socket库的差异,写出一份代码在两个系统上跑通;能运用多线程技术处理高并发连接,避免服务端阻塞死锁;还能用抓包工具去排查实际通信中的丢包、粘包等网络故障。在看视频时,不要只用眼睛看,必须把资料里提供的源码包下载下来,跟着视频一行行敲进自己的工程里。每写完一个功能模块,比如创建socket、绑定端口、监听连接,就立刻在两台真实或虚拟机器上跑一下连通性测试。讲到HTTP服务器和syslog服务器实现时,先自己尝试解析协议字段,再去对照视频里的写法找差距。只有把代码跑起来,用客户端去连自己写的服务端,看到真实的数据收发,才算真正把这门网络编程技术吃进肚子里。


熟悉windows和linux下的开发流程,能开发出支持跨平台的多线程的网络程序。理解socket编程原理,理解udp和tcp协议,能通过抓包工具分析协议,能够开发出支持高并发的网络服务端,通过开发支持php的http服务器和syslog服务器网络编程实...

课程目录

*   01 前言/

  *   01 课程内容介绍.mp4 19:07

  *   02 学习方法说明和课程代码下载演示.mp4 02:01

  *   03 TCPIP协议分层讲解.mp4 06:37

  *   04 网络包抓包分析.mp4 06:05

  *   05 在windows和Linux系统之间配置共享.mp4 16:43

*   02 Socket/

  *   01 系统socket库介绍.mp4 04:30

  *   02 windows上加载socket库.mp4 05:55

  *   03 在windows平台创建socket.mp4 06:08

  *   04 移植到Linux并设置单进程创建socket的最大数量.mp4 08:50

*   03 TCP服务器/

  *   01 TCP协议特点讲解.mp4 04:02

  *   02 TCP协议头和窗口分析.mp4 06:31

  *   03 创建TCPServer设置服务器信息并讲解网络字节序.mp4 08:46

  *   04 bind端口.mp4 03:39

  *   05 listen开始监听.mp4 04:12

  *   06 accept读取用户的连接信息.mp4 04:28

  *   07 取出连接客户端IP地址和端口号.mp4 07:23

  *   08 服务端recv客户端发送数据.mp4 03:54

  *   09 服务端循环接收客户端数据.mp4 06:43

  *   10 服务端回应send客户端数据.mp4 04:47

  *   11 Tcpserver开启多线程并发处理.mp4 12:42

  *   12 Tcpserver移植到windows.mp4 03:23

*   04 TCP类封装/

  *   01 创建XTcp类接口.mp4 05:57

  *   02 封装socket和bind接口.mp4 04:13

  *   03 封装跨平台accpet和close接口.mp4 04:50

  *   04 封装跨平台send和recv接口.mp4 05:25

  *   05 XTcp类在windows中测试.mp4 08:24

  *   06 XTcp类在Linux中的测试.mp4 02:51

  *   07 创建XTcp动态dll链接库项目.mp4 11:36

  *   08 测试XTcp的dll动态链接库.mp4 07:31

  *   09 创建XTcp动态so链接库项目(Linux).mp4 05:36

  *   10 测试XTcp的so动态链接库.mp4 09:49

*   05 TCP客户端/

  *   01 创建tcpclient项目.mp4 03:54

  *   02 tcp三次握手协议详解.mp4 05:24

  *   03 完成XTcp库connect函数封装.mp4 07:40

  *   04 移植到Linux并测试与服务端通信.mp4 04:19

  *   05 tcp编程总结.mp4 02:21

*   06 TCP阻塞超时和高并发处理/

  *   01 Windows中设置socket阻塞和非阻塞.mp4 09:43

  *   02 Linux中设置socket阻塞和非阻塞.mp4 09:45

  *   03 通过select实现connect的跨平台超时处理.mp4 12:52

  *   04 并发测试工具ab使用讲解.mp4 03:32

  *   05 epoll高并发多路复用讲解.mp4 03:13

  *   06 通过epoll接收用户连接.mp4 08:56

  *   07 基于epoll的高性能服务端开发和高并发测试.mp4 15:47

*   07 实战支持php的http服务器/

  *   01 http协议详解通过抓包和telnet模拟分析.mp4 12:30

  *   02 Xhttp项目创建接受浏览器请求.mp4 09:52

  *   03 响应浏览器的页面请求完成http的响应协议.mp4 10:17

  *   04 通过正则表达式分析浏览器请求.mp4 13:59

  *   05 获取请求文件大小并生成http协议头.mp4 11:08

  *   06 发送用户请求的页面和图片.mp4 08:48

  *   07 完成http1.1协议并移植到windows.mp4 05:52

  *   08 通过正则表达式获取请求页面文件后缀php.mp4 11:04

  *   09 调用php-cgi完成php脚本解析.mp4 09:05

  *   10 完成php脚本解析并返回给浏览器.mp4 06:49

  *   11 支持给php传递基于URLGET变量.mp4 09:36

  *   12 封装XhttpServer对外接口类.mp4 08:50

  *   13 封装XHttpClient处理单个请求的接口.mp4 08:31

  *   14 封装http协议响应类XHttpResponse.mp4 12:02

  *   15 完成Xhttp封装移植到linux解决中断问题.mp4 14:01

*   08 UDP Socket编程/

  *   01 UDP协议讲解.mp4 04:47

  *   02 创建UDPserver监听端口.mp4 10:26

  *   03 recvfrom接受客户端数据.mp4 05:36

  *   04 sendto客户端和服务端互相发送数据.mp4 10:34

  *   05 UDPclient和Server移植到linux.mp4 07:30

  *   06 UDP广播包发送接收.mp4 08:40

*   09 UDP实战XSyslog服务器/

  *   01 syslog项目介绍linux系统日志配置.mp4 04:13

  *   02 创建xsyslog在动态库中封装udp类.mp4 09:04

  *   03 封装UDP的recv和send.mp4 10:35

  *   04 使用UDP接收Linux日志.mp4 04:35

  *   05 使用正则表达式分析syslog日志并告警用户非法登录.mp4 06:29

*   10 结课测试/

  *   01 结课测试