2011-03-19 70 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)。