从 0 开始学游戏开发
蔡能
原网易游戏引擎架构师,资深游戏底层技术专家
37243 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
从 0 开始学游戏开发
15
15
1.0x
00:00/00:00
登录|注册

第23讲 | 如何定制合适的开发协议?

DOM方式
SAX方式
PULL方式
编码风格
特点
解析程序库
特点
解析方式
留下的问题
自定义协议包的考虑因素
三种开发协议的特点
加密协议内容
保证协议的完整性
完整性和安全性
ProtoBuf
JSON
XML
计算机设备之间的沟通桥梁
客户端和服务器端的网络沟通协议
总结
自定义协议包
协议的种类
什么是开发协议?
网络协议定制

该思维导图由 AI 生成,仅供参考

什么是开发协议?说得简单一点,就是一种客户端和服务器端的网络沟通协议(Protocol)。
广义上说,协议是计算机各种设备之间沟通的桥梁。比如网络之间需要协议,ping 一个网站是否通顺也需要协议,广播地址也需要协议。我们甚至可以说键盘鼠标操作事件也需要协议,Dubbo 架构也需要协议沟通等等。
从狭义上说,协议指的就是网络协议。比如在网络游戏中,客户端和服务器端之间的内容交互,就需要网络协议;在 Web 网站中,前端和后端的交互,也需要协议;再比如,邮件服务的网络交互也需要协议的交互等等。可以说,任何与网络相关的服务都少不了协议的支撑。
在游戏开发中,我们可以自定义一套自己的开发协议,也可以把现成的开发协议拿来使用。具体怎么做呢?我们先来看现在网上用得比较多的几种协议。

三种最流行的开发协议

XML

XML 几乎是网络上最早出现的传输协议之一。在最早的 Web 开发中,XML 可以作为网络协议,也可以用作配置文件。比如某些游戏或者某些应用的配置文件,都可以使用 XML 来编写。
从人类的角度讲,它的可读性比较强,解析也比较方便。我们先来看几种解析方式。
解析方式是这些协议被程序理解的一种方式,按照这种方式解析,和我后面要说的自定义协议的解析和剖析结合起来,乃前后呼应之奇效。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

网络协议在客户端和服务器端通信中扮演着至关重要的角色。本文介绍了XML、JSON和ProtoBuf三种流行的开发协议。XML作为早期传输协议之一,具有较强的可读性和解析便利性,但逐渐被JSON取代,后者因其简洁、清晰的层次结构和高效的网络传输效率而备受青睐。此外,ProtoBuf作为一种轻便、高效的结构化数据存储格式,适用于RPC系统和持续数据存储的系统。文章还强调了自定义协议包时需要考虑安全性和完整性,提出了在协议末尾添加特殊字符或固定输出协议长度的字节数来保证完整性,以及对协议内容进行加密以确保安全性的方法。这些内容为读者提供了网络协议的基本概念和设计原则,帮助他们在实际开发中选择合适的协议。文章内容丰富,涵盖了各种协议的特点和应用场景,以及自定义协议包的设计考虑,对于技术开发人员具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学游戏开发》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 以往
    内容中出现“!@#$”时可以用\!\@\#\$这种形式来转义

    作者回复: 也可以但并不能保证唯一性

    2018-09-06
  • 以往
    当传输内容中出现结尾字符时,对其进行转义

    作者回复: 说的简单了点

    2018-09-03
  • 心态正常
    协议尾部采用固定的尾部字符加自增的序列号
    2021-05-02
  • 以往
    请问老师怎么保证唯一性? 用随机生成的字串替换“!@#$”可行吗
    2018-09-11
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部