【发布时间】:2010-09-17 09:40:26
【问题描述】:
我想知道是否有人有一些资源来描述ObjectOutputStream 使用的二进制协议。我当然意识到对象本身可以通过实现Externalizable 接口来指定它们的数据,所以我想我更关注对象图的结构——如果你愿意的话,元数据。
我正在编写一个必须与遗留 Java 程序对话的 C 程序。我无法更改这些要求中的任何一个,因此发现自己对ObjectOutputStream 协议进行了逆向工程。 (有一个服务器使用 HTTP 进行传输并返回 Object*Stream 作为 HTTP 响应。)
但是,我觉得以前必须有人做过这项工作。你能指出任何资源来加快我的工作吗?
【问题讨论】:
-
你将如何与 Java 程序交谈?是否有服务器,为应用程序提供服务?
-
找不到这个?你在哪里看的?显然是对象序列化规范。但除了 Externalizable,您还必须处理任何 Serializable 类都可以通过 readObject()、readResolve()、writeObject() 和 writeReplace() 定义或添加自己的协议的事实。这确实使您的项目在一般情况下非常不可行。如果您只处理一个源代码无法更改的固定类,您可能会很幸运。你真的应该审查整个需求。实际上,如果没有 JVM,您将无法正确实现序列化。
标签: java serialization binary protocols objectoutputstream