Protobuf是一个规模较小、速度更快、效率更高的协议。

      最后更新:2021-11-16 22:52

      前言

      在讨论JSON的使用情况之前:从嵌入的实用知识中抽样的JSON数据。 JSON类型数据对可读性有好处,但在整个软件包中将有一些毫无意义的数据,这将造成某种通信压力。

      在这篇论文中,我们将讨论原生植物,一种轻量级数据格式。

      Protobuf具有以下优势:

      • 更小,更快,更容易。

      • 各种节目语言得到了支持。

      • 解析速度快。

      • 可扩展性强。

      什么是原生生物体,原生生物体-C?

      Protocol Buffers,谷歌发明的数据格式可以像XML一样,对数据存储、通信协议等结构化数据进行排序。它既不依赖语言,也不依赖平台,而且极易缩放。

      原药库仓库:

      ❝

      github:https://github.com/protocolbuffers/protobuf

      ❞

      下载速度缓慢, 但是在下载之前, 下载可能会被导入到代码云中 。

      Protobuf支持以下编程语言:

      图片

      可以看出,本论坛支持各种流行语言,但支持的不是C。 结果,建立了第三方本论坛。

      原药库-c的仓库:

      ❝

      https://github.com/protobuf-c/protobuf-c

      ❞

      建立原虫和原虫 建立原虫和原虫

      如果我们想利用用C书写的原药,我们首先必须安装原药和原药。

      在Ubuntu安装的技术如下:

      1. 原药布的安装

      种子库的安装依赖于以下工具,必须安装:

      安装后, 使用以下命令下载、 建造和安装( 如果下载太慢, 先导入云) 源代码 :

      其中,执行./autogen.sh用于制作配置配置的配置脚本,运行configure创建 Makefile 并运行它 。make进行编译,执行sudo make install命令进行安装,执行sudo ldconfig发送动态链接库到系统的命令 。

      2. 原装 装 装

      同样,Protobuf-c依靠pkk配置来执行以下命令:

      下一步,下载、编译和安装Protobuf-c,使用以下命令:

      如果您按上述方式安装,则默认情况下将安装原装药和原装药。/usr/local路径下:

      图片

      ❝

      友好提醒:安装程序可能会造成各种困难。 仔细检查错误描述和物品的安装步骤,以确定是否有任何阶段被跳过。

      ❞

      实践demo

      原生核核是...proto我们会为你做一个。.proto生成我们的协议数据,我们随后将利用这些数据原石- c 工具生成了两个文件的C代码:一个页眉和一个源码。

      例如我们创建一个student.proto文件:

      语法是一个语法版本,配有proto2, proto3, 我们使用proto2。 它与 C 语言相似。 Proto还定义了多种数据格式, 如 Proto 2 的数据类型: 双倍、 浮动、 int32、 int32、 viint32、 文本等等 。

      在这个例子中,信息是一个关键词, 修饰版的学生将建立我们C. Am中的学生结构, 需要先订前缀, 表明字段是一个强制字段 。

      • 备选办法:表示不需要该字段。

      • 重复:表示字段重复,通常以数组或列表形式表示。

      使用原石- c 工具工具编译student.proto文件的命令:

      图片

      不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,

      图片

      不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不, 不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,

      我们正在研究我们的学生。 c 演示:

      左右滑动查看全部代码>>>

      Demo 基本上是生成协议数据结构的包件,它调用包界面将数据拖入缓冲;拆包则相反,从缓冲中提取数据并将其插入结构。

      编译命令:

      加上-lprotobuf-c参数链接动态链接库protobuf-c.so 不需要给出动态的图书馆路径, 因为Idconfig 命令在前一次安装中曾经使用过; 否则, 就必须采用明确的方法来参考先前的条款: 静态和动态链接补充( Linux), 什么是动态链接和静态链接?

      编译运行:

      图片

      如果运行时报错:找不到动态库要导出动态库,请使用以下命令:

      有关这一主题的前几条见此:静态和动态链接补充(Linux)。

      这是目前的原生生物库共享,在pc中提供了这方面的例子。 有兴趣使用Stm32和嵌入Linux的小伙伴也许想尝试一下,如果机会出现,继续分享。

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类