我需要解码由以下结构表示的二进制数据(C#):
struct Message
{
byte id;
int type;
bool valid;
}
示例二进制数据:0x040000000201 其中 id=4,type=2,valid=true;
我可以使用 Thrift、Protocol Buffers 或任何其他工具来解码不是由同一工具编码的二进制数据吗?你能就如何做到这一点给出任何建议吗?
谢谢
我需要解码由以下结构表示的二进制数据(C#):
struct Message
{
byte id;
int type;
bool valid;
}
示例二进制数据:0x040000000201 其中 id=4,type=2,valid=true;
我可以使用 Thrift、Protocol Buffers 或任何其他工具来解码不是由同一工具编码的二进制数据吗?你能就如何做到这一点给出任何建议吗?
谢谢
不,基本上。它们被设计为独立于平台的通用序列化工具,每个都遵循预定义的协议(/wire-format),这意味着:标准用户通常不需要知道或关心数据的样子——这是工具的工作把它抽象掉。
在您的情况下,有线格式是预定义的,不太可能与任何此类工具相似。您将需要一个更具体的工具来允许您指定非常细粒度的协议细节,或者您需要编写代码来手动序列化/反序列化。
最终,这与问“我可以使用 JavaScriptSerializer 来读取我的 XML 文档吗?”没有什么不同。答案很简单:“不;JavaScriptSerializer 期望 JSON 并且无法指定或解释 XML 细节”。