如果你已经能照着示例敲出一个 TCP 回声服务,但遇到「客户端连上了却没收到响应」「关掉一端另一端还在傻等」这类问题时只能靠打印日志硬猜,那这门课要补的正是这块。它不讲 Socket 是什么,而是把 UDP 和 TCP 两套 API 的边界条件、阻塞行为、异常返回值一个个摊开讲,再用局域网搜索、聊天室、文件传输这类需要自己处理收发节奏的案例逼你把细节落地。
先确认缺口:你会调 API,但说不清它在做什么
多数人学 Socket 的路径是背下 bind、listen、accept、send、recv 的调用顺序,能跑通就算过。可一旦数据量上去、连接数变多,问题就来了:recv 返回 0 到底意味着什么、为什么 UDP 的 sendto 不会阻塞而 TCP 的 send 会、广播和多播地址该怎么填、收到「连接被重置」时该重连还是该退出。这些不是靠记忆能解决的,得知道内核在这一步替你做了什么。
这门课从 UDP 切入,先讲清楚无连接到底省掉了哪些步骤,再过渡到 TCP。顺序上和很多教材相反,但好处是你能先看清「没有连接」时数据报是怎么被丢出去、被谁收走的,回头再看 TCP 的三次握手和滑动窗口,就知道那些机制分别在解决 UDP 留下的哪个坑。
UDP 部分:单播、广播、多播不是三个开关
UDP 章节里,单播、广播、多播被放在一起讲,这是有意的。三者用的是同一套 sendto/recvfrom,差别只在目标地址和套接字选项上:广播要开 SO_BROADCAST,多播要加入组并设置 TTL 和回环,单播则什么都不用加。很多人在局域网搜索场景里踩坑,就是因为不知道广播包默认发不出去、多播组不加就收不到。
配套的局域网搜索案例值得动手写两遍。它要求一台设备发出探测包,其他设备收到后回自己的信息,整个过程中没有服务端和客户端的固定角色,谁都可以发起。写完之后你应该能回答:为什么这个场景用 UDP 比 TCP 合适、广播和组播分别适合多大的网络、丢包了要不要重传。
TCP 部分:连接是状态机,不是函数调用
TCP 章节的重点不在「怎么建立连接」,而在「连接活着的时候双方各自在什么状态」。半关闭、TIME_WAIT、粘包与拆包、心跳与超时,这几件事在聊天室和文件传输案例里都会真实出现。比如聊天室要处理某个客户端掉线后其他端如何感知,文件传输要处理大文件分块发送时接收方怎么判断一个完整包收齐了。
这些问题的解法不是调大缓冲区或加个 sleep,而是先定义应用层自己的消息边界:定长头加变长体、或者用分隔符。课程里的案例会带着你把这条边界划出来,而不是让你去改系统参数糊弄过去。
看完之后,你应该能回答这些问题
- UDP 的 sendto 什么时候会阻塞,什么时候直接返回错误?
- 广播地址和组播地址在代码里分别怎么写,为什么本机可能收不到自己发的包?
- TCP 的 recv 返回 0 和返回 -1 分别代表什么,分别该做什么处理?
- 聊天室场景下,怎么让服务端知道一个客户端已经异常断开,而不是一直等它发消息?
- 文件传输时如何保证接收端拼出来的文件和发送端一致,粘包问题在哪里被解决?
适合谁、不适合谁
适合已经写过至少一个能收发数据的 Socket 程序、但说不清背后机制的人,也适合从 Web 框架转过来、想弄明白 HTTP 底下那层到底怎么工作的人。如果你还没写过任何一行网络代码,建议先补一个最简单的 TCP 回声例子再来,否则案例里的调试环节会跟不上。
练习建议:每看完一个案例,先关掉视频自己重写一遍收发流程,再对照检查自己在关闭顺序、错误处理、缓冲区大小上漏了什么。这门课的价值不在案例本身,而在那些你写的时候才会撞上的边界情况。
慕课实战: Socket网络编程进阶与实战 系统掌握Socket核心技术
系统掌握Socket核心技术,实战提升网络编程能力
编辑点评
深入浅出讲解Socket编程,涵盖UDP、TCP、聊天室、文件传输等实战案例,适合有网络编程基础的学习者。
⭐ 编辑推荐
全面解析Socket网络编程,从入门到实战,助你掌握网络编程核心技术。
课程亮点
课程目录
📁 第3章 Socket UDP快速入门
3-2 UDP核心API讲解.mp4 [17.9 MB]
3-3 UDP单播、广播、多播-1.mp4 [14.6 MB]
3-1 UDP是什么.mp4 [17.4 MB]
3-7 案例实操-局域网搜索案例-3.mp4 [149.6 MB]
3-4 UDP单播、广播、多播-2.mp4 [18.6 MB]
3-6 案例实操-局域网搜索案例-2.mp4 [178.5 MB]
3-5 案例实操-局域网搜索案例-1.mp4 [101.8 MB]
📁 第12章 整体代码结构梳理与升华
12-2 调度优化之发送数据调度优化.mp4 [196.2 MB]
12-7 调度优化之多线程窃取模式IO调度.mp4 [148.5 MB]
12-4 调度优化之单线程IO调度-1.mp4 [187.8 MB]
12-1 框架性能瓶颈压测.mp4 [155.6 MB]
12-5 调度优化之单线程IO调度-2.mp4 [116.6 MB]
12-3 多线程调度瓶颈分析.mp4 [33.0 MB]
12-6 案例分析不是BUG的BUG.mp4 [58.4 MB]
📁 第8章 数据传输稳定性优化
8-6 构建有序消息体-基本发送调度实现.mp4 [169.8 MB]
8-8 构建有序消息体-基本接收调度实现-2.mp4 [120.0 MB]
8-4 传输分析-借鉴学习HTTP精髓.mp4 [35.5 MB]
8-2 复现数据传输异常现象.mp4 [162.3 MB]
8-7 构建有序消息体-基本接收调度实现-1.mp4 [121.4 MB]
8-5 构建有序消息体-调度接口定义.mp4 [154.8 MB]
8-9 消息粘包与消息不全测试.mp4 [225.2 MB]
8-3 传输分析-如何有序的混传数据.mp4 [18.5 MB]
8-1 消息不不完整与消息粘包.mp4 [23.5 MB]
📁 第2章 Socket网络编程快速入门
2-4 Socket TCP牛刀小试-服务端实现.mp4 [86.3 MB]
2-3 Socket TCP牛刀小试-客户端实现.mp4 [89.4 MB]
2-2 Socket与TCP、UDP.mp4 [23.2 MB]
2-5 报文、协议、Mac地址.mp4 [16.1 MB]
2-1 什么是网络编程?.mp4 [28.1 MB]
2-6 IP、端口及远程服务器.mp4 [25.6 MB]
📁 第10章 聊天室升级版实战
10-1 消息调度分析.mp4 [44.7 MB]
10-13 心跳包构建与消费调度-3.mp4 [195.6 MB]
10-7 服务器消息调度逻辑规范化-2.mp4 [113.1 MB]
10-11 心跳包构建与消费调度-1.mp4 [148.9 MB]
10-2 并发客户端BUG修复与性能优化-1.mp4 [249.5 MB]
10-3 并发客户端BUG修复与性能优化-2.mp4 [250.9 MB]
10-8 服务器消息调度逻辑规范化-3.mp4 [232.7 MB]
10-10 心跳包必要性与策略选择.mp4 [39.1 MB]
10-9 服务器消息调度逻辑规范化-4.mp4 [208.3 MB]
10-5 数据三层缓冲区IoArgs调度优化.mp4 [155.1 MB]
10-4 并发客户端BUG修复与性能优化-3.mp4 [244.0 MB]
10-12 心跳包构建与消费调度-2.mp4 [228.5 MB]
10-6 服务器消息调度逻辑规范化-1.mp4 [138.5 MB]
📁 第11章 语音数据即时通信实战
11-10 客户端搭建与界面交互-2.mp4 [144.0 MB]
11-13 语音即时通信总结.mp4 [22.1 MB]
11-5 服务器桥接改造实现-2.mp4 [143.0 MB]
11-12 客户端采集、传输、播放-2.mp4 [65.1 MB]
11-11 客户端采集、传输、播放-1.mp4 [199.1 MB]
11-9 客户端搭建与界面交互-1.mp4 [176.7 MB]
11-4 服务器桥接改造实现-1.mp4 [11.4 MB]
11-3 语音数据直流传输扩展-2.mp4 [143.8 MB]
11-8 客户端数据编码技术选型.mp4 [21.3 MB]
11-7 服务器桥接改造实现-4.mp4 [136.9 MB]
11-6 服务器桥接改造实现-3.mp4 [88.9 MB]
11-2 语音数据直流传输扩展-1.mp4 [40.8 MB]
11-1 语音即时通信分析.mp4 [25.7 MB]
📁 第6章 简易聊天室案例
6-4 服务器状态与测试用例构建-1.mp4 [97.4 MB]
6-3 聊天室消息转发实现.mp4 [141.9 MB]
6-6 6-7 服务器性能总结与优化方案服务器性能分析与压测.mp4 [151.8 MB]
6-2 聊天室消息接收实现.mp4 [195.2 MB]
6-5 服务器状态与测试用例构建-2.mp4 [74.5 MB]
6-1 聊天室数据传输设计.mp4 [16.2 MB]
📁 第9章 局域网文件快传技术实战
9-9 消息分片传输设计与实现-1.mp4 [83.6 MB]
9-13 消息分片设计与实现-发送调度-1.mp4 [176.5 MB]
9-11 消息分片传输设计与实现-3.mp4 [189.2 MB]
9-1 混传数据总结与梳理.mp4 [23.4 MB]
9-14 消息分片设计与实现-发送调度-2.mp4 [170.0 MB]
9-15 消息分片设计与实现-接收调度-1.mp4 [141.6 MB]
9-17 文件快传收尾与总结.mp4 [102.7 MB]
9-10 消息分片传输设计与实现-2.mp4 [97.3 MB]
9-12 消息分片传输设计与实现-4.mp4 [135.4 MB]
9-8 发送文件到服务器-3.mp4 [155.3 MB]
9-3 文件消息模型基础实现-1.mp4 [135.3 MB]
9-4 文件消息模型基础实现-2.mp4 [163.3 MB]
9-5 文件消息模型基础实现-3.mp4 [195.1 MB]
9-2 文件传输与普通传输的区别.mp4 [26.5 MB]
9-6 发送文件到服务器-1.mp4 [172.3 MB]
9-7 发送文件到服务器-2.mp4 [176.5 MB]
9-16 消息分片设计与实现-接收调度-2.mp4 [178.3 MB]
📁 第7章 服务器传输优化-NIO
7-7 NIO服务器Thread优化-1.mp4 [14.0 MB]
7-2 NIO Family一览.mp4 [22.5 MB]
7-4 NIO重写服务器器-1 (2).mp4 [30.6 MB]
7-4 NIO重写服务器器-1 (1).mp4 [244.4 MB]
7-6 NIO重写服务器-3.mp4 [52.5 MB]
7-5 NIO重写服务器器-2.mp4 [241.0 MB]
7-10 NIO服务器Thread优化-4.mp4 [122.3 MB]
7-12 NIO服务器Thread优化-6.mp4 [295.9 MB]
7-1 阻塞IO和⾮非阻塞IO.mp4 [39.7 MB]
7-6 NIO重写服务器器-3.mp4 [128.3 MB]
7-8 NIO服务器Thread优化-2.mp4 [115.4 MB]
7-9 NIO服务器Thread优化-3.mp4 [126.0 MB]
7-13 NIO知识归纳梳理.mp4 [20.8 MB]
7-11 NIO服务器Thread优化-5.mp4 [219.1 MB]
📁 第5章 UDP辅助TCP实现点对点传输案例
5-4 数据发送与接收并行-1.mp4 [188.8 MB]
5-1 UDP搜索IP与端口-1.mp4 [112.1 MB]
5-3 点对点传输实现.mp4 [138.2 MB]
5-5 数据发送与接收并行-2.mp4 [177.7 MB]
5-6 数据发送与接收并行-3.mp4 [134.6 MB]
5-2 UDP搜索IP与端口-2.mp4 [188.6 MB]
📁 第1章 课程导学(Java语言教学)
1-1 导学.mp4 [47.3 MB]
📁 第4章 Socket TCP快速入门
4-6 案例实操-TCP传输初始化配置-2.mp4 [145.6 MB]
4-7 案例实操-TCP基础数据传输-1.mp4 [129.7 MB]
4-4 TCP传输可靠性-排序、丢弃、重发.mp4 [65.5 MB]
4-8 案例实操-TCP基础数据传输-2.mp4 [152.5 MB]
4-5 案例实操-TCP传输初始化配置-1.mp4 [156.4 MB]
4-1 TCP是什么、能做什么.mp4 [13.2 MB]
4-2 TCP核心API讲解.mp4 [17.3 MB]
4-3 TCP连接可靠性-三次握手、四次挥手.mp4 [35.9 MB]
code-master.zip [1.3 MB]适合人群
- 网络编程初学者
- 有网络编程基础的开发者
- 希望提升网络编程能力的工程师
学习收获
祝您学习愉快!
学有所成,前程似锦!





![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=https%3A%2F%2Fwww.itzhibei.com%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)
