protocolbuffer通信协议c语言使用和内部打包解析

更新时间:2023-07-19 05:25:29 阅读: 评论:0

protocolbuffer通信协议c语⾔使⽤和内部打包解析
protocol buffer是⾕歌开发的⼀种开源数据传输语⾔格式,类似于json和XML等,在嵌⼊式开发中据我所知蓝⽛通信经常⽤到protobuf,主要特点是打包和解包速度快,同时本⾝具有⼀定的加密性,虽然经过本⼈分析,加密性并不⾼哈哈,不过已经⽐json和xml这种直接把数据直观显⽰出来的加密性⾼很多了。
⽬前protobuf⽀持的语⾔:
生日报C语⾔外部库
⽐较显著的⼏个特点:
做个心电图多少钱
1】数据打包和解包速度快,基本上打包和解包的过程就是把数据按照协议罗列上去,所以很快
2】打包完数据体积⼩,主要还是整个过程中格式相关的东西⽐较少,导致占⽤带宽少,传输效率⾼
3】有⼀定的加密性
4】好上⼿,在官⽹上都有各种语⾔(C语⾔是单独的)的打包⼯具,只需要把⾃定义的protobuf结构⽂件按照官⽅wiki⾃动⽣成⼀下就可以了,会⽣成⼀些打包和解包的接⼝,使⽤的时候只需要按照将⾃⼰的数据传进去就可以了
官⽹:/p/protobuf/
c语⾔版本⽹站:/p/protobuf-c/
probobuf-c⽣成⼯具的使⽤
先下载安装google protocol buffer ,再下载安装 protocol buffer C,
1】下载完成后,./configure --prefix=/usr/local ⽣成makefile⽂件
公司文化墙设计
服装海报2】执⾏make编译
3】make install 安装到本地环境中
可能遇到的⼀些问题书画大赛
1】linux缺少库的问题,缺少什么库就安装什么库,可以更换⼀个速度快⼀点的源,同时执⾏sudo apt-get update 和 sudo apt-get upgrade 2】缺少gcc、g++等软件,执⾏sudo apt-get install gcc 和sudo apt-get install g++ 安装即可
最后将.proto⽂件放到指定⽬录下,执⾏protoc-c --c_out=. /test.proto 就可以在当前⽬录下⽣成指定的.c和.h⽂件
所有的解包和打包接⼝都可以在.h⽂件中找到
打包和解包源码简读: 1/*proto源⽂ 2 message TestMessage {
1  /*proto*/
2   message TestMessage {陈俊武
3   required uint32 num    = 1;
4    optional bytes buf    = 2;
5 }
6/*.h⽂件中⽣成的对应结构体*/
7struct _Protos__TestMessage
8 {
9  ProtobufCMessage ba;
10  uint32_t num;
11  protobuf_c_boolean hasbuf;
12  ProtobufCBinaryData buf;
13 };
14/* .h中与当前结构相关的所有接⼝ Protos__ methods */
15 typedef struct _Protos__TestMessage Protos__TestMessage;
16void protos__test_message__init(Protos__TestMessage*message);
17 size_t protos__test_message__get_packed_size(const Protos__TestMessage*message);
18 size_t protos__test_message__pack(const Protos__TestMessage*message,
19                                      uint8_t *out);
20 size_t protos__test_message__pack_to_buffer(const Protos__TestMessage*message,
21                                                ProtobufCBuffer *buffer);
22 Protos__TestMessage* protos__test_message__unpack(ProtobufCAllocator *allocator,
24            size_t len,
洗洁精
25            const uint8_t *data);
26void protos__test_message__free_unpacked(Protos__TestMessage*message,
27                                            ProtobufCAllocator *allocator);
以上所有的接⼝实现都在.c⽂件中,
空调制热怎么调最主要是打包接⼝和解包接⼝,阅读源码可以看到打包的过程就是按照结构的顺序去拼装数据;

本文发布于:2023-07-19 05:25:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1104459.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:打包   数据   和解   结构   过程   格式   速度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图