先弄清楚:这门课值不值得你花时间
很多做桌面端开发的人,写到涉及网络通信的功能就会卡壳。界面不卡死、断线能重连、高并发下不丢数据,这几件事光靠看语法是写不出来的。这门课解决的就是这个具体场景:怎么在 Qt 框架里把网络通信和多线程结合起来用。它不教你 C++ 基础语法,也不讲 Qt 界面拖拽,而是直接切入 TCP、UDP 在实际工程里怎么落地。如果你平时的工作只是写写本地工具、做点简单界面,那这门课对你来说可能偏早;但如果你要做带网络通信的客户端、服务端工具,或者想往底层架构方向转,这门课的内容是绕不开的。适合有一点 C++ 和 Qt 基础、能独立写简单界面、但没怎么碰过网络编程的人。
建议这样看:先抓协议,再抓线程
资料的组织逻辑很清晰,但不要从头到尾顺序看。建议先把网络通信模型和 TCP 报文那几节过一遍,这部分不写代码,但决定了你后面能不能看懂业务逻辑。三次握手、四次挥手这些概念,如果你没搞懂就直接去看 QTcpSocket 的代码实现,大概率会停在“为什么这么写”的疑问上。看完协议基础,直接跳到 TCP 客户端和服务端的代码实现部分,对照着把客户端和服务端跑通一遍。多线程相关的几节,建议放在最后看,因为它是这门课里最绕的部分——QThread 的几种用法、信号槽在线程间怎么传递、为什么有时候不用信号槽反而更清晰,这些东西光看视频不动手是理不清的。
学完能做什么:从能跑通到能扛住并发
学完之后,你应该能独立写出一个不卡界面的 TCP 客户端和服务端,理解 QTcpSocket 对象在哪个线程、为什么要把它移到独立线程里处理。资料里给的代码不是让你背下来的,而是让你拿来改的。练习的时候,建议先照着实现一遍基础通信,然后自己加几个需求:比如断线重连、超时处理、多客户端同时连接服务端时怎么用线程池管理。UDP 部分相对简单,但别忘了用它写一个简单的广播或组播程序,因为有些业务场景下 UDP 比 TCP 合适得多。这门课的价值不在于让你记住几个类的名字,而在于让你搞清楚“网络数据到了之后,应该由谁处理、在哪处理、怎么处理才不影响界面响应”。把这个问题想明白,你写的 Qt 网络程序就算入门了。
帮助学员掌握Qt高并发网络编程、多线程与网络编程的混合编程
课程目录
* 01 课前准备工作
* 02 Internet与网络通信模型
* 03 OSI七层模型与TCPIP四层模型
* 04 TCP协议报文简介
* 05 TCP协议的三次握手与四次挥手
* 06 TCP网络编程流程简介
* 07 TCP客户端界面创建与美化
* 08 TCP客户端QTcpSocket类
* 09 TCP客户端代码实现
* 10 TCP服务端界面创建与美化
* 11 TCP服务端QTcpServer类
* 12 TCP服务端代码实现
* 13 QTcpSocket对象所在线程分析
* 14 TCP客户端使用QThread类(方式一)
* 15 TCP客户端使用QThread类(方式二)
* 16 TCP客户端使用QThread类(不使用信号槽)
* 17 TCP服务端使用QThread类
* 18 TCP服务端使用QThreadPool类
* 19 UDP协议报文简介
* 20 UDP网络编程流程简介
* 21 UDP客户端界面创建与美化
* 22 UDP之QUdpSocket类
* 23 UDP客户端代码实现
* 24 UDP服务端界面创建与美化
* 25 UDP服务端代码实现
* 26 UDP通信方式剖析
* 27 UDP通用版界面创建与美化
* 28 UDP通用版代码实现
* 29 UDP客户端带心跳检测代码实现
* 30 UDP服务端带心跳检测代码实现
* 31 UDP客户端带心跳检测与消息封装代码实现
* 32 UDP服务端带心跳检测与消息封装代码实现
* 33 QUdpSocket对象所在线程分析
* 34 UDP客户端使用QThread类(方式一)
* 35 UDP客户端使用QThread类(方式二)
* 36 UDP服务端使用QThread类
* 37 UDP单播、组播、广播简介
* 38 UDP组播发送端界面创建与美化
* 39 UDP组播发送端代码实现
* 40 UDP组播接收端界面创建与美化
* 41 UDP组播接收端代码实现
* 42 UDP广播发送端界面创建与美化
* 43 UDP广播发送端代码实现
* 44 UDP广播接收端界面创建与美化
* 45 UDP广播接收端代码实现
* 46 Qt网络编程总结






