我的大学对等通信课程使用内部客户/服务器程序进行演示,并且(我认为)扩展它是评估的一部分。我们使用的程序是用java编写的,并使用序列化进行网络通信。
为了获得更好的抓地力,我想尝试重新实现目标c中使用的协议,但谷歌搜索我无法找到有关在语言之间使用序列化数据的任何信息。我希望尽可能简单,理想情况下能够将我的替换服务器/客户端放到网络上并使其运行。
修改实际上并没有在那里提出问题。
是否可以在两种序列化格式之间进行通信,如何在不对Java使用的格式进行逆向工程的情况下完成此工作。
答案 0 :(得分:1)
我建议避免用另一种语言编写(de)序列化支持java的本机序列化。
如果您可以更改现有的Java服务器和客户端,请使用更加与语言无关的序列化格式。
假设您不允许进行这种更改,我将定义新协议,并在Java中实现桥接。桥(进程)将代表连接到它的每个客户端建立连接,并在Java序列化和语言无关的表单之间转换消息。这将提供良好的迁移策略。
答案 1 :(得分:0)
Java序列化协议(如果它是内置的默认Java序列化)已记录在案,因此您无需对其进行反向工程 - 请检查this article和this link。但是,如果可以,请使用JSON,XML或XML-RPC;它比用另一种语言创建Java serializer / deserializer要简单得多。