【问题标题】:Decoding binary protocol messages not encoded by the same tool解码不是由同一工具编码的二进制协议消息
【发布时间】:2012-03-27 04:47:24
【问题描述】:

我需要解码由如下结构表示的二进制数据 (C#):

struct Message
{
    byte id;
    int type;
    bool valid;
}

以及示例二进制数据:0x040000000201 where id=4, type=2, valid=true;

我可以使用 Thrift、Protocol Buffers 或任何其他工具来解码不是由同一工具编码的二进制数据吗? 你能就如何做到这一点给出任何建议吗?

谢谢

【问题讨论】:

标签: c# protocol-buffers decoding decoder


【解决方案1】:

不,基本上。它们被设计为独立于平台的通用序列化工具,每个都遵循预定义的协议(/wire-format),这意味着:标准用户通常不需要知道或关心数据的样子——这是工具的工作把它抽象出来。

在您的情况下,有线格式是预定义的,不太可能与任何此类工具相似。您将需要一个更具体的工具来允许您指定非常细粒度的协议细节,或者您需要编写代码来手动序列化/反序列化。

最终这与询问“我可以使用 JavaScriptSerializer 来读取我的 XML 文档吗?”没有什么不同。答案很简单:“不;JavaScriptSerializer 期望 JSON 并且无法指定或解释 XML 细节”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 2012-01-08
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2014-08-09
    相关资源
    最近更新 更多