将数据从C传递到Java

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

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

编辑说明:它只是从C服务器到Java applet,没有java servlet。 Applet传递给C服务器的唯一内容是hex数字,表示要采取的操作

您可能想看看Protocol Buffers

它们允许您定义结构化数据,然后生成用于以任何支持的语言读取和写入消息的代码。 唯一的问题是我认为他们现在只支持C ++,不过我知道直接C实现有兴趣。

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

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