2

我错过了 protobuffers 的一些东西。以下是一些我难以回答的问题。

  • .proto 文件是否足以获取所有数据?在网站上的地址簿示例中,他们似乎将数据写入文件并从文件中使用(与 .proto 文件本身分开)。我知道 proto 序列化了对象结构,并且我知道它可以序列化一条消息,但是我很难找到将数据放在哪里并在一个包含的 .proto 文件本身中检索。

  • 如果上面的问题得到了回答,我认为我的假设是一个团队可以创建原型文件并使用 java 序列化数据,而另一个团队可以简单地获取文件并使用 python 反序列化这是正确的假设吗?

4

2 回答 2

3

.proto 文件是否足以获取所有数据?

proto文件用于定义消息的结构。每个字段都有一个标签号。只要你有正确的proto文件,数据就可以正确反序列化。是的,proto文件就足够了。

一个团队可以创建 proto 文件并使用 java 序列化数据,而另一个团队可以简单地获取文件并使用 python 反序列化这是正确的假设吗?

一个团队可以创建定义发送/接收数据所需的结构,其他团队可以使用该定义进行通信。只要两个团队使用相同的.proto文件并且正确分配了标签号,您就可以轻松完成您的要求。

于 2013-04-23T06:01:01.110 回答
0

这样想

客户端java代码-proto编码器
-- 字节 =======网络======= --字节 -proto解码器 服务器端java代码




代替网络,字节可以由一侧写入文件并由另一侧读取。任何。

为了让proto 编码器proto 解码器完成它们的工作,他们需要了解传入字节的格式。proto文件描述了该格式。

这有点类似于通过网络发送图像:双方都需要知道它是一个png文件。如果一个发送png而另一个尝试解码jpg,事情将无法正常工作。jpg与vspng描述图像格式的方式相同,proto文件描述数据格式。

于 2013-04-23T06:33:55.227 回答