取消/序列化二进制数据

时间:2016-05-18 21:05:01

标签: java serialization binary jackson ormlite

我目前正在反向生成mmorpg的二进制网络协议。 我正在java中实现协议。

对于每种数据包类型, 我将创建一个表示二进制数据的类。

例如,Chat-Packet(" asd")

header = 0c75
03 00 61 73 64 00   . . a s d .

java代码:

public class Chat {
  private short length;
  private String msg;
}

是否有一个库将字节数组直接反序列化到对象中。基本上像Jackson或OrmLite这样的二进制数据。

任何人都知道是否有可以使用的库? 我已经在这里和谷歌搜索,但没有找到我想要的东西。 我甚至开始编写自己的Serializer。

1 个答案:

答案 0 :(得分:0)

每个序列化库(我所知道的?)都定义了自己的二进制格式 - 因此二进制表示完全由类/ idl文件决定,不能定制以匹配自定义协议。常见的二进制格式:

如果您正在进行逆向工程的协议不是一个常见的协议(也许他们在内部使用proto?)那么您唯一的选择就是自己实现Serializable / Externalizable,或者可以引入{ {3}}并定义自己的自定义(de)序列化程序 - 无论哪种方式,您都将编写Object< - > byte [] / stream / buffer转换逻辑自己。