在编写网络应用时,服务端与客户端的协议设计是一个非常重要的环节。本文将介绍业界常见的通信协议设计思路。
序列化与反序列化
我们知道,对于面向对象编程(OOP),在程序的内存中,数据一般是struct、object等封装好的类型。而在网络上进行交互,却只能使用二进制流。因此就存在这样两个问题:
- 如何将内存数据转化为二进制流?我们称之为序列化
- 如何将二进制流转化为内存数据?我们称之为反序列化
2024/11/13大约 12 分钟
在编写网络应用时,服务端与客户端的协议设计是一个非常重要的环节。本文将介绍业界常见的通信协议设计思路。
我们知道,对于面向对象编程(OOP),在程序的内存中,数据一般是struct、object等封装好的类型。而在网络上进行交互,却只能使用二进制流。因此就存在这样两个问题:
有这样一个图:

上图中,连线上的数字表示点与点之间的距离,那么从点A到点F的最短距离是多少?