【问题标题】:Passing data from C to Java将数据从 C 传递到 Java
【发布时间】:2008-11-11 21:30:34
【问题描述】:

在 C 服务器和 Java 小程序之间传递数据的最佳方式是什么?目前它是通过使用缓冲区并使用 memcpy 将字节复制到它来完成的,但是如果对象发生变化,我必须寻找它被发送到小程序的每个实例并进行更改。

有没有更好的方法将对象传递给java?你会怎么做?

编辑澄清:它只是从 C 服务器到 Java 小程序,没有 Java servlet。 Applet 唯一传递给 C 服务器的是一个十六进制数字,表示要采取的行动

【问题讨论】:

    标签: java c serialization


    【解决方案1】:

    你可能想看看Protocol Buffers

    它们允许您定义结构化数据,然后生成代码以使用任何受支持的语言读取和写入消息。唯一的问题是我认为他们目前只支持 C++,尽管我知道人们对直接 C 实现很感兴趣。

    【讨论】:

    • 看起来很简单,服务器可以使用C++代码,只是目前是全C写的,不过我打算改一下。
    【解决方案2】:

    我会在两个应用程序之间打开一个套接字连接。您可以将对象序列化为字节数组,并让 Java servlet 将其反序列化为具有相同值的 Java 对象。这样,如果类定义发生变化,您只需更改两处代码即可。

    【讨论】:

      【解决方案3】:

      我会在 C 端将对象序列化为 XML 或 google protobuf,并使用单个反序列化器在 applet 端对它们进行反序列化。 IE。没有一个以上的类可以进行反序列化。让用户知道您对序列化进行版本化,并且如果它尝试读取的版本不向后兼容,则执行反序列化的对象会引发异常。在整个代码中进行序列化和反序列化是一种不好的做法。

      【讨论】:

      • 如果性能成为问题,这可能不是一个好的解决方案。 XML 不是很节省空间
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2010-11-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多