2011-03-19 52 views
0

我一直在研究Java网络。 我使用ObjectInputStream和ObjectOutputStream作为套接字之间的I/O。通过网络传递实体?

这是可能将实体或模型从服务器转移到客户端,反之亦然? 我该如何执行此操作?我想实现实体或模型到序列化?

您的回复非常感谢。

回答

0

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

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

+0

通过网络发送XML文件? – 2011-03-19 14:05:53

+0

XML有很大的开销。 RMI或Hessian提供更好的性能,使用Hessian,您还可以轻松地根据需要切换到XML(Burlap)。 – 2011-03-20 00:09:17

1

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

请注意,如果您发送一个对象,则最终会发送每隔一个对象也包含一个非瞬时引用。

+0

我对大写表示歉意。我会看看试试这个。 – 2011-03-19 14:05:29

0

你一定要看看这两个库

之一

谷歌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一样,这会生成文本文本JSON)。