2012-04-03 35 views
1

我有一个Java服务器发送java序列化对象到我的客户端,并接收java序列化对象执行。如果我的客户端也是用Java编写的,这很好,可以让我在任何问题中进行沟通。通过套接字发送对象,但不同的语言客户端,如何使对象序列化?

但是现在我想将我的程序扩展到不仅仅是java客户端,客户端可能用C语言编写,目标是C,python或php。所以,我想做一些事情来“修改”客户端请求到一个java对象,然后发送回服务器。 convent过程中,我可以使用JSON接收并构造一个Java对象给服务器,但是我还需要一个将Java对象转换为JSON的层转换为客户端。

我的问题是除了做一个JSON-Java翻译层,有没有其他方法可以这样做?另外,我们可以在服务器端修改一些代码,但我们必须使用Java作为我们的主要语言。有什么建议么?谢谢。

回答

0

我用的Netty API来设计我的协议,这是相当快的这样做,如果你能理解一个NIO般字节和缓冲API。 这是一个设计工作的编码器和解码器,可以满足您的需要,有很多默认的编码器和解码器的压缩,使用SSL的实施...

你看起来像问题似乎这一个: JBoss Netty with JSON

我不知道JSON很好,但大多数时候也可以快速和容易地设计自己的协议。

对于任何类型的对象,你需要一个通用的序列化过程,还是只需要序列化一些字符串和基本类型(整型,简写,浮点等等)? 在简单对象的情况下,你自己做包装很容易,速度也快很多。如果对象非常简单,并且我猜想是这种情况,那么您需要它来设计自己的“协议”规范,这意味着如何将每个对象转换为一系列基本类型,字符串和数组。比在每种语言中编写编码器和解码器应该相当容易。

祝你好运

相关问题