请帮助我理解协议缓冲区

2024-07-01 08:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我在protobuffers上遗漏了一些东西。这里有一些问题我很难回答。在

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

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


Tags: 文件数据对象消息示例序列化网站地址
2条回答

这样想吧

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

与网络不同,字节可以由一方写入文件,另一方从中读取。以哪个为准。在

为了让proto encoderproto decoder完成他们的工作,他们需要理解输入字节的格式。proto文件描述了这种格式。在

这有点类似于通过网络发送图像:双方都需要知道它是png文件。如果一个发送png,而另一个试图解码jpg,那么事情就不起作用了。与jpgvspng描述图像格式相同,proto文件描述数据格式。在

Is a .proto file enough to have get all the data out of?

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

one team can create the proto file and serialize the data with with java and another team can simply take the file and use python to deserialze it is that correct assumption?

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

相关问题 更多 >

    热门问题