
动手实践:基于网络套接字的服务器-客户端远程过程调用(RPC)模型及数据序列化 – 支持 Windows 和 Linux
课程学习收获
- 从 #include <stdio.h> 开始从零构建远程过程调用(RPC)
- 深度理解数据序列化和反序列化核心概念
- 掌握应用程序状态同步原理与实现逻辑
- 理解应用程序状态检查点核心机制
- 学会将数据对象转换为字节流操作
- 掌握对象递归操作方法
- 可将所学知识扩展应用到其他编程语言
- 明确异构机器间数据传输的必备前提条件
课程学习要求
- 具备中级及以上C语言编程能力
- 了解基础套接字数据收发知识优先,非强制要求
- 可使用任意版本Linux系统(原生系统/虚拟机均可)
- 拥有对知识的渴望与编程学习热情
课程详细描述
本课程专注于手把手教你开发专属远程过程调用(RPC)功能,支持Linux与Windows双系统环境。课程核心优势为全程不依赖任何第三方库,延续纯底层开发教学理念,带你使用纯C语言,从零开始一步步搭建RPC系统,不使用任何框架、辅助工具与支持库,从最底层原理入手学习。
本课程为各类系统软件项目奠定核心基础,相关拓展项目也已纳入课程大纲体系。
远程过程调用(RPC)是一种调用网络中其他物理机器函数与过程的技术,也是课程的核心学习内容。课程不仅讲解RPC底层原理,还能将核心概念扩展应用到数据同步、应用程序状态检查点等系统编程场景,初始版本即可提供RPC开发完整教学内容。
数据同步
将应用程序整体堆状态同步至远程机器,让远程机器构建镜像堆状态;若主机器故障,远程机器可直接接管运行,保障服务连续性。
检查点
将应用程序内存状态持久化存储到磁盘/文件中,支持应用程序从内存快照恢复至原始状态,实现程序重启与故障恢复功能(检查点模块将在课程后续版本更新实现)。
适合学习人群
本课程适合具备扎实C指针、C对象内存布局知识,且拥有中级C编程水平的学习者;适合渴望提升专业能力、突破自我的学生;强烈建议职场求职者、专业开发人员学习。
课程核心知识跨编程语言通用,掌握后可在任意语言中实现RPC、数据同步、检查点功能,深入理解Java等语言RPC底层实现逻辑,普通基础学习者谨慎报名。
课程前置条件
必备基础:熟练掌握C语言与指针操作;加分项:基础套接字编程能力。
课程采用阶梯式教学,从零基础铺垫核心基础,再逐步深入高阶内容;若你不擅长C语言指针与内存操作,建议先补齐基础后再报名学习。
重要学习建议:不要仅观看教学代码,一定要亲手编写代码,复刻练习才能真正掌握知识。
课程编程语言:C语言
课程选择C语言作为开发语言,具备核心优势:RPC技术可通过任意语言实现,而C语言能直接暴露系统底层运行细节,是系统编程领域的唯一标准选择,无替代语言,能让你彻底掌握RPC底层运行机制。
第三方库使用规则
课程核心逻辑开发必须从 #include <stdio.h> 从零手写,禁止使用第三方库,保证底层原理学习效果;为提升开发效率,链表、树、队列等通用数据结构可使用第三方库辅助实现。
相关推荐课程
RPC是网络机器间进程通信的核心方式,如需学习更多通信技术,可查看本平台Linux IPC(进程间通信)专题课程。
课程温馨提示
课程配备自动生成字幕,翻译精度有限,可根据自身学习需求关闭字幕使用。
完整课程内容
课程分为两大核心模块:深度掌握序列化与反序列化概念、基于序列化技术实战搭建系统(RPC、状态同步、检查点)。
第2-6节:夯实基础,全面掌握序列化与反序列化技术;第7-9节:实战开发RPC、状态同步、检查点三大核心系统。
- 开始第一部分:课程入门使用
- Linux系统安装基础教程
- 第二节:序列化概念与应用场景
- 第三节:数据序列化与反序列化核心概念
- 简单C语言结构体序列化与反序列化
- 嵌套C语言结构体序列化与反序列化
- C语言结构体指针序列化与反序列化
- 第四节:数据流数据结构设计与实现
- 第五节:C语言序列化与反序列化实战
- 基础结构体、嵌套结构体、指针序列化实战
- 综合案例实操
- 第六节:通用数据结构序列化
- 函数指针实现void*类型数据序列化
- 第七节:从零实现远程过程调用
- RPC概念与架构设计
- 客户端桩:RPC参数封装
- 服务器桩:参数解包+返回值序列化
- 客户端桩:返回值反序列化
- RPC身份标识与实战案例
- 第八节:应用程序状态同步实战
- 第九节:检查点功能开发(即将发布)
课程目标受众
- 希望提升核心竞争力、脱颖而出的学生
- 追求职业晋升、职业转型的软件开发专业人士
- 热爱编程、专注于系统软件开发的技术爱好者
