一段时间以来,我一直在寻找解决方案,但我发现的东西都不是很匹配。C# 有一个内置的序列化库很棒,但这并不是我想要的。我需要以可以序列化它们的方式序列化对象,将标头数据附加到数据包中,即。ID 号、时间戳、对象类型等,然后能够将其发送出去,而无需记住我将其发送到的平台。换句话说,我应该能够在 C++ 或 Java 中解包我的数据包,而无需比我要转换的对象类型和标头数据的顺序更多的知识。C# 中的二进制格式化程序会产生一个问题,因为它被设计为在另一端使用相同的库进行反序列化。它还会创建我不想处理的臃肿数据包。
|========|========|=========|===|==============|
| 数据包ID | 数据类型 | 时间戳 | 等| 序列化对象 |
|========|========|=========|===|==============|
如果我可以访问 memcpy 中的某些东西来实现这一点,那就太好了,因为只要对象的数据类型顺序被反序列化为匹配项(是的,假设其他语言具有相同的数据类型字节大小),在新平台上从服务器抓取数据很容易(比如我想抓取 Android (Java) 或 iPhone (obj.C) 的数据),几乎没有麻烦