这几天接触到google.protobuf的东西,这类知识有欠缺,补一下。

序列化,将对象的状态信息转换为可以存储或传输的形式的过程,反之称为反序列化。

序列化的目的不是为了加密,而是为了跨平台传输!

序列化 和 反序列化主要用于解决在跨平台和跨语言的情况下,模块之间的交互调用,但其本质是为了解决数据传输的问题。

 

序列化,要有原始数据,通过某些方式,转换成另一种形式,目的是网络传输或磁盘拷贝。

平台或语言不同,某些数据类型占用的内存大小不一样。

 数据对齐

 

序列化整体过程:

发送端:原始数据 =》序列化(编码) =》特殊格式的字符串, 发送这个字符串

接收端:接收数据,将接收的数据进行反序列化(解码)=》原始数据,对原始数据进行处理

 

常用的序列化方式:

1. XML 类似于html

    <?xml version="1.0" encodeing="utf-8"?>

   <Library>

         <Type name="小说">

             。。。

         </Type>

   </Library>

标签自定义

 

2. Json  采集键值对的方式来描述对象。解析速度比较快,比xml快

    Json是一种数据格式,与平台语言无关

 

3. Protocl Buffer

 

4. ASN.1 抽象语法标记

5.boost 序列化的类。

 

posted on 2022-05-09 22:41  努力建设我的管道!  阅读(136)  评论(0编辑  收藏  举报