protocol-buffers - protobufs 格式的原始解码器

标签 protocol-buffers

我想找到一种方法将二进制 protobuf 消息转换为包含数据的人类可读描述,而无需使用 .proto 文件。

背景是我有一个 .proto 消息,它被 Android 上的解析器拒绝,但不完全清楚原因。我可以手动浏览消息,但它相当乏味。

我试过 protoc --decode_raw ,但它只会给出错误“无法解析输入。”。我谷歌希望/期望有人会做一个很好的网络实用程序,可以做到这一点,但没有发现任何明显的东西。

我只是希望得到一些输出,如:

field 1: varint: 128
field 4: string: "foo"

任何指向正确方向的指针将是最受欢迎的!

最佳答案

您可以尝试通过wireshark插件强制它,或者您可以借用某些实现的“阅读器”部分(例如,我知道我将如何在C#中执行此操作,但我怀疑这就是您的意思)。

但是,要小心—— Protocol Buffer 中的字符串并不真正意味着“字符串”——它可能是:

  • 一个 UTF-8 字符串
  • 任意数据的原始 BLOB
  • 一条子留言
  • “打包”数组
  • (可能还有其他我忘记了)
  • 关于protocol-buffers - protobufs 格式的原始解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343867/

    相关文章:

    go - Protocol Buffer : Send arbitrary structure over GRPC

    c++ - Protocol Buffer 和实际传输选项 - 套接字或中间件

    python - 是否有用于 Python 包装器的 Protocol Buffers 允许在 Python 代码而不是 proto 文件中进行对象注释?

    c++ - Protobuf 默认值

    java - 如何从 prototxt 文件编译protocol buffer java类

    c++ - 从 C++ 访问 Protocol Buffer 扩展重复字段

    java - 使用 protobuf 的 REST Java Web 服务

    java - 是否可以模拟 Java Protocol Buffer 消息?

    documentation - 有没有办法在 protobuf (proto2) 中创建类型别名?

    c - google protocol buffer wire type 起始组和结束组用法