【问题标题】:Serialised communication between languages语言之间的序列化通信
【发布时间】:2011-10-13 15:43:51
【问题描述】:

我的大学点对点通信课程使用内部客户端/服务器程序进行演示,并且(我认为)扩展它是评估的一部分。我们使用的程序是用java编写的,并使用序列化进行网络通信。

为了更好地掌握,我想尝试重新实现目标 c 中使用的协议,但谷歌搜索我找不到任何关于在语言之间使用序列化数据的信息。我想让这个尽可能简单,理想情况下能够将我的替换服务器/客户端放到网络上并让它正常运行。

编辑实际上并没有在那里问问题。

是否可以在两种序列化格式之间进行通信,如何在不对 java 使用的格式进行逆向工程的情况下进行这项工作。

【问题讨论】:

  • 这听起来令人愉快。你是不是也有问题?!
  • 这将是一个痛苦的练习。
  • 我也这么想;几个快速搜索没有带来任何东西。

标签: java objective-c networking


【解决方案1】:

我建议避免用另一种语言编写对 java 的本机序列化的(反)序列化支持。

如果您可以更改现有的 Java 服务器和客户端,请使用更与语言无关的序列化格式。

假设不允许您进行这种更改,我将定义新协议,并在 Java 中实现一个桥接器。桥(进程)将代表连接到它的每个客户端建立连接,并在 Java 序列化和语言不可知形式之间转换消息。这将提供一个很好的迁移策略。

【讨论】:

    【解决方案2】:

    Java 序列化协议(如果它是内置的默认 Java 序列化)已记录在案,因此您无需对其进行逆向工程 - 检查 this articlethis link。但是,如果可以,请使用 JSON、XML 或 XML-RPC;这将比用另一种语言创建 Java 序列化器/反序列化器要简单得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多