如果你写过 C/C++,也在 Windows 上编译过程序,但一遇到“两台机器之间怎么把数据传过去”就卡住,这门课针对的就是这个缺口。它不讲泛泛的计算机网络原理,而是把落点放在 Windows 平台上的 Socket 编程:怎么建连接、怎么收发数据、阻塞和非阻塞有什么区别、同步和异步模型各自适合什么场合。学完之后,你应该能独立写出一个能跑起来的客户端与服务端程序,而不是只停留在看懂别人代码的水平。
它解决的是哪类工作场景
最典型的有三种。一是做上位机、工控或内网工具,需要让本机程序和另一台设备或服务器通信;二是维护已有的 C++ 项目,里面有一层网络模块,你需要读懂并改得动;三是准备面试或转方向,TCP/IP 协议、IO 模型这些是绕不开的考点。这几种场景的共同点是:光知道概念没用,得能落到代码。课程把重点放在 Windows Socket 这套具体接口上,而不是抽象地谈协议分层,这对上面这些场景更直接。
学完之后能独立做什么
- 用 Socket 接口写一个可用的 TCP 服务端和客户端,完成连接建立、数据收发和正常关闭。
- 处理常见的网络编程细节:地址与端口的转换、字节序问题、粘包与拆包的初步应对。
- 理解阻塞与非阻塞的差别,知道在什么情况下需要引入多线程或 IO 复用。
- 看懂 select、异步选择等模型的基本用法,能判断一个具体需求该选哪种方式。
- 排查基本的连接失败、收发异常问题,而不是一报错就无从下手。
需要说明的是,这门课打的是底层基础,不是教你用某个现成的网络库或框架一步到位。如果你期待的是“几行代码搞定高并发服务器”,那期待方向不太对。
资料适合什么基础
前提有两个:一是能读写 C/C++,看得懂指针、结构体和基本的回调写法;二是对 Windows 编程环境不陌生,知道怎么建工程、怎么调试。只要满足这两点,即使之前完全没碰过网络编程,也可以跟。反过来,如果 C++ 还很生,或者只是想在 Windows 上快速调个 API,建议先把语言基础补上再来,否则很容易卡在语法而不是网络本身。
怎么用这套资料效率更高
网络编程是动手学科,看和写之间的差距很大。建议每个知识点都自己敲一遍,哪怕照着写也行,重点是把“编译—运行—看到结果”这个循环走通。TCP 部分务必亲手做一次两台机器或两个进程互传数据的实验,只在本机跑通循环回环,很多问题你根本遇不到。遇到阻塞、卡死、收不全数据这类现象,先别急着翻答案,自己用调试手段定位一遍,收获比直接看结论大得多。
理论部分不用一次啃透,可以先跑通代码再回头理解机制,这样抽象概念才有对应物。异步和 IO 模型那几节难度会上一个台阶,如果第一次没完全吃透,属于正常,先把同步阻塞这套用熟,再逐步往深处走。
值不值得学
判断标准很简单:你接下来的工作或目标里,有没有“让程序之间通信”这一项。有,这门课是扎实的底层训练,花的时间能直接换成动手能力;没有,只是觉得名字硬、想先囤着,那大概率会半途搁置。它不轻松,也不速成,但覆盖的是网络编程里真正会反复用到的那些东西。先把基础这部分打牢,后面再学任何网络库或框架,都会顺很多。
课程目录
课程目录46 条
- 01 网络简介
- 01 网络简介(一)
- 02 网络简介(二)
- 03 网络简介(三)
- 04 网络简介(四)
- 05 网络简介(五)
- 06 网络简介(六)
- 07 网络特性
- 02 socket基础
- 01 TCP的服务端
- 02 TCP/UDP客户端以及UDP服务端
- 03 列举计算机中安装的协议
- 04 socket基本函数介绍
- 05 获取网络IP地址
- 03 socket编程模型
- 01 阻塞方式服务端程序
- 02 select模式
- 03 窗口模式的select
- 04 EventSelect模式
- 05 问题解决
- 06 事件内核对象处理socket上的IO操作
- 07 完成例程
- 08 完成端口
- 09 扩展函数
- 10 其他扩展函数
- 04 QOS和NetBios
- 01 QOS简介
- 02 NetBios基础
- 03 阻塞模式服务端程序示例
- 04 NetBiso编程
- 05 网络命名空间(DNS)
- 05 网络命令Ping和Ipconfig
- 01 ipconfig(一)
- 02 ipconfig(二)
- 03 网络工具
- 04 ping命令
- 05 Tracert-traceroute命令
- 06 WSAIoctl和SockOpt
- 01 socket选项
- 02 WSAIoCtl
- 07 多播命名管道和邮槽
- 01 多播(一)
- 02 多播(二)
- 03 邮槽
- 04 命名管道
- 08 RPC编程 01 rpc_1 02 Rpc_2 03 Rpc_3






