通过网络传递实体?

时间:2011-03-19 13:42:18

标签: java sockets network-programming

我一直在研究Java网络。 我使用ObjectInputStream和ObjectOutputStream作为套接字之间的I / O.

是否可以将实体或模型从服务器传输到客户端,反之亦然? 我该如何实现呢?我想将实体或模型实现为可序列化吗?

非常感谢您的回复。

3 个答案:

答案 0 :(得分:1)

我不确定你用资本-E实体和资本-M模型表示什么样的特殊事物;这些术语在Java中没有任何固定的特权含义(尽管它们可能与某个API或框架有关。)一般来说,如果通过这些术语你只是指一些特定的Java对象,那么是的,你可以发送任何类型的以这种方式对象,是的,他们将需要实现Serializable。唯一的限制是,如果这些对象包含其值在管道另一端没有意义的成员 - 如文件路径等。

请注意,如果你发送一个对象,你最终也会发送它拥有非瞬态引用的所有其他对象。

答案 1 :(得分:0)

首先......为什么通过I / O流发送对象? XML有什么问题?

但是,只要发件人可以序列化对象并且接收者可以反序列化对象,您就可以始终通过I / O流发送/接收对象。希望它有所帮助

答案 2 :(得分:0)

您肯定需要查看这两个库中的一个

Google gson:http://code.google.com/p/google-gson/ 将Java对象转换为JSON并返回。优点是可以通过Javascript使用或生成对象。我也将它用于Java-Java RPC,但如果你想稍后定位浏览器,它会给你灵活性

Google协议缓冲区:http://code.google.com/apis/protocolbuffers/ 这是谷歌用于RPC的东西。 Java,C,Python的实现。如果你需要性能和最小的尺寸,这是一个配合(折衷是你不能轻易地查看数据调试问题,就像你可以使用gson,它生成plaint文本JSON)。