ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

protobuf 序列化协议之数据结构

2026/8/12 17:50:14 拓冰建站 浏览量
protobuf 序列化协议之数据结构

.

一、数据结构

1、map

/*** <pre>*     map*         ------------------------------------------------------------------------------------------*              fieldNumber0+Wiretype     |  entryMessage |    fieldNumber0+Wiretype    | entryMessage*         ------------------------------------------------------------------------------------------* </pre>*/

2、list

/*** <pre>*     list*          BYTES、STRING、MESSAGE*               ---------------------------------------------------------------------------------*                    fieldNumber0+Wiretype     |  data0 |    fieldNumber0+Wiretype     | data1 |*               ---------------------------------------------------------------------------------**          double、float...*              ---------------------------------------------------------------------------------*                   fieldNumber0+Wiretype     |   dataSize    |  data0 | data1 | data2*              ---------------------------------------------------------------------------------* </pre>*/

3、DOUBLE

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_FIXED64 | data*     --------------------------------------------------* </pre>*/

4、FLOAT

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_FIXED32 | data*     --------------------------------------------------* </pre>*/

5、INT64

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     --------------------------------------------------* </pre>*/

6、UINT64

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     --------------------------------------------------* </pre>*/

7、INT32

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     --------------------------------------------------* </pre>*/

8、FIXED64

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_FIXED64 | data*     --------------------------------------------------* </pre>*/

9、FIXED32

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_FIXED32 | data*     --------------------------------------------------* </pre>*/

10、BOOL

/*** <pre>*     --------------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     --------------------------------------------------* </pre>*/

11、STRING

/*** <pre>*     -----------------------------------------------------------------*          fieldNumber+WIRETYPE_LENGTH_DELIMITED | dataLength | data*     -----------------------------------------------------------------* </pre>*/

12、BYTES

/*** <pre>*     ----------------------------------------------------------------------*          fieldNumber+WIRETYPE_LENGTH_DELIMITED | dataSize | data*     ----------------------------------------------------------------------* </pre>*/

13、UINT32

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     ----------------------------------------------* </pre>*/

14、ENUM

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     ----------------------------------------------* </pre>*/

15、SFIXED32

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_FIXED32 | data*     ----------------------------------------------* </pre>*/

16、SFIXED64

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_FIXED64 | data*     ----------------------------------------------* </pre>*/

17、SINT32

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     ----------------------------------------------* </pre>*/

18、SINT64

/*** <pre>*     ----------------------------------------------*          fieldNumber+WIRETYPE_VARINT | data*     ----------------------------------------------* </pre>*/

二、ProtoType和WIRETYPE

/*** <pre>*     ----------------------------------------------------------------------------------------------------------------*       ProtoType  |  WIRETYPE_FIXED64 | WIRETYPE_FIXED32 | WIRETYPE_VARINT | WIRETYPE_LENGTH_DELIMITED    | JavaType*     -------------|---------------------------------------------------------------------------------------|----------*       DOUBLE     |        v          |       -          |        -        |          -                   |   DOUBLE*     -------------|---------------------------------------------------------------------------------------|----------*       FLOAT      |        -          |       v          |        -        |          -                   |   FLOAT*     -------------|---------------------------------------------------------------------------------------|----------*       INT64      |        -          |       -          |        v        |          -                   |   LONG*     -------------|---------------------------------------------------------------------------------------|----------*       UINT64     |        -          |       -          |        v        |          -                   |   LONG*     -------------|---------------------------------------------------------------------------------------|----------*       INT32      |        -          |       -          |        v        |          -                   |   INT*     -------------|---------------------------------------------------------------------------------------|----------*       FIXED64    |        v          |       -          |        -        |          -                   |   LONG*     -------------|---------------------------------------------------------------------------------------|----------*       FIXED32    |        -          |       v          |        -        |          -                   |   INT*     -------------|---------------------------------------------------------------------------------------|----------*       BOOL       |        -          |       -          |        v        |          -                   |   BOOLEAN*     -------------|---------------------------------------------------------------------------------------|----------*       STRING     |        -          |       -          |        -        |          v                   |   STRING*     -------------|---------------------------------------------------------------------------------------|----------*       BYTES      |        -          |       -          |        -        |          v                   |   BYTE_STRING*     -------------|---------------------------------------------------------------------------------------|----------*       UINT32     |        -          |       -          |        v        |          -                   |   INT*     -------------|---------------------------------------------------------------------------------------|----------*       ENUM       |        -          |       -          |        v        |          -                   |   ENUM*     -------------|---------------------------------------------------------------------------------------|----------*       SFIXED32   |        -          |       v          |        -        |          -                   |   INT*     -------------|---------------------------------------------------------------------------------------|----------*       SFIXED64   |        v          |       -          |        -        |          -                   |   LONG*     -------------|---------------------------------------------------------------------------------------|----------*       SINT32     |        -          |       -          |        v        |          -                   |   INT*     -------------|---------------------------------------------------------------------------------------|----------*       SINT64     |        -          |       -          |        v        |          -                   |   LONG*     -------------|---------------------------------------------------------------------------------------|---------*       MESSAGE    |        -          |       -          |        -        |          v                   |   MESSAGE*     -------------|---------------------------------------------------------------------------------------|---------* </pre>*/

.

.