1
我正在寫服務器,我正在使用ObjectInputStream
來處理專有數據包。我最近有時會收到一些意想不到的ClassCastException
,我想打電話objectInputStream.readObject()
,然後嘗試將它們轉換爲專有數據包。我一直在試圖追查這個問題,我一直在想是否因爲objectInputStream
因某種問題而崩潰。根據objectInputStream.readObject()
方法的文檔...「所有異常對於InputStream都是致命的,並使其處於不確定狀態;調用方可以忽略或恢復流狀態。」恢復崩潰的InputStream
我想知道他們是什麼意思的「恢復流狀態」...有沒有適當的方式來恢復objectInputStream或我應該做一個socket.getInputStream()
?
嗯,我懷疑ObjectInputStream壞了,因爲我得到一個ClassCastException後,我的ObjectInputStream停止從客戶端接收數據包。 – Brian 2011-06-01 02:19:44
'readObject'是拋出異常還是拋出異常? – trutheality 2011-06-01 02:31:07
嗯,我明白你的意思了,這就是我最初懷疑的......當我知道我正在發送它們時,我爲什麼會得到ClassCastExceptions;順便說一句,演員們90%的時間都在工作,有時它會崩潰。我嘗試了一個小實驗...嘗試在崩潰後重新加載ObjectInputStream,所以我調用'objectInputStream = new ObjectInputStream(socket.getInputStream);'並引發'StreamCorruptedException'。 – Brian 2011-06-01 02:36:07