这门课解决什么工作场景
很多做后端业务开发的程序员,习惯了直接用现成框架去处理接口请求,对底层网络通信往往是一知半解。一旦遇到连接异常断开、并发量上来后服务端卡死,或者需要对接底层硬件协议时,就会因为没有网络编程底子而抓瞎。这门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 结课测试






