2010-10-23 46 views
0


我在這裏有一個問題...!寫對象插座

我想寫一個程序中,我要通過一些數據和packet_no數據的...

所以,我創建一個類Packet。我想通過Socket的OutputStream發送一個Packet對象。

我該如何做到這一點?
謝謝

回答

6

你需要的東西叫做ObjectOutputStream。它是從常規的OutputStream創建的。在接收端你將需要適當的ObjectInputStream。你的對象和所有的字段必須實現Serializable接口。

示例代碼:

OutputStream os = socket.getOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(os); 
oos.writeObject(p); 
+0

+1寫一個短的回答言簡意賅這樣一個通用的問題。只要確保'class Packet'實現'Serializable'即可。 – Isaac 2010-10-23 05:48:08

+1

它們不需要serialVersionUID,它將通過序列化代碼進行計算。事實上,我相信你*不應該包含serialVersionUID,除非你已經考慮過對象版本控制以及你將要做什麼。我的意思是,當你從去年的某個地方收到一個基於代碼的對象時,你會做什麼?你會把它轉換成新的結構嗎?通過指定一個serialVersionUID而不給出任何想法,你就是將自己的頭放在沙中,並希望不會出現問題。 – 2010-10-23 05:54:34

+0

@Adrian Pronk更正 – 2010-10-23 05:56:35