首先让我解释一下我们的项目。

我们有一个客户端服务器系统。客户端和服务器均使用Java实现。我们将在C中重新实现客户端,以保持接口相同并使服务器保持在Java状态。

客户端和服务器之间的通信方式是通过java动态代理进行,而remoteid是网络连接。现在,客户端调用在服务器上调用的方法。显然,要进行序列化和反序列化。我想实现服务器在C语言中期望的格式。作为一名C语言黑客,我通过Wireshark打开数据包,并开始在Java代码中映射实际字节,这对我没有太大帮助。我无法在代码中映射几个字节(显然我没有看正确的代码)。

我还没有完全了解java动态代理是使用其库自动序列化的,还是需要在该类中实现一些功能,以便可以将内容写到线路上。

谁能建议我对这种问题采取更人性化的方法?

PS:我对Java编程不是很好。

最佳答案

我是Google Protocol Buffers的支持者,用于维护跨语言兼容的序列化接口。您以一种相当简单的格式编写消息格式,然后protoc会以您想要的任何语言为消息对象生成代码,并对其进行兼容的序列化。 (这也非常有助于确保您以后可以添加更多字段而不破坏所有内容,这对于轻松维护事物非常重要。)

默认情况下,它仅处理Java,C ++和Python,但处理C plugins exist

10-06 15:39
查看更多