Linux下使用protobuf-c实现自定义协议

1、背景需求

    通信协议设计,考虑了后续跨语言的支持(如Java、Python、C),需求一种序列化、反序列化的库

2、相关知识

    Google Protocol BUffer 提供了一种适用于RPC系统、持续数据存储系统的混合语言数据标准,可用于通信协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前有C++、C、Java、Python三种语言的API。

2.1 protobuf的优点

    1、通过数据结构的定义,能够生成结构相关的接口代码;

    2、兼容性好,支持对现有数据结构添加新成员;

    3、协议文本字段自动压缩,使用二进制传输;

    详细的介绍可见参考文献[1],附上一张序列化技术相关的性能对比图:


2.2 数据格式

    关于proto2还是proto3的选择可参考文献[4],考虑兼容性的问题,该文章采用的proto2方式定义[5];

    

.proto类型

Java 类型

C++类型

备注

double

double

double

 

float

float

float

 

int32

int

int32

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值