我正在一個excepetion當我試圖從ObjectInputStream讀取對象通過網絡這樣的:Objectdeserialization通過網絡
Socket socket = new Socket("localhost", 4444);
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while ((Object o = ois.readObject()) != null) {
}
這裏是例外,我得到:
java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source)
連接本身似乎很好,因爲我能夠通過網絡讀取字符串,但對象不工作。
因爲它是一個EOFExcepetion,我假設該流當前不再發送數據。 (在第一個對象被髮送後這是可以的)。 所以我在想也許我正在使用objectdeserialization錯誤的方式?
這裏有什麼問題?謝謝!
服務器端是什麼樣的?你如何結束連接? – 2009-09-28 15:11:19
服務器不會結束連接。它序列化一個對象,然後通過outputstream.writeObject() – clamp 2009-09-28 15:17:26
將它發送給客戶端好的抱歉,我剛發現確實存在服務器上關閉連接的問題。 – clamp 2009-09-28 15:54:36