2016-03-23 46 views
1

我有一個服務器和許多客戶端。他們通過Java套接字相互通信。我製作了一個消息庫,其中包含應發送的消息。很多消息完美無缺,但是有一個問題。如果我想發送這種信息的,我得到以下異常:StreamCorruptedException:無效的流頭:73720024

java.io.StreamCorruptedException:無效的流頭:73720024 在java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:806) 在java.io.ObjectInputStream中。(ObjectInputStream.java:299) 在messages.MessageHandler.receiveMessageNonBlocking(MessageHandler.java:156) 在loadbalancer.socket.SocketCommunicator.socketMessageHandler(SocketCommunicator.java:147) 在loadbalancer.socket .SocketCommunicator.run(SocketCommunicator.java:93)

如果客戶機和服務器在同一臺計算機上運行,​​但沒有發生問題,則說明問題不會發生。遠程計算機使用相同的操作系統,相同的Java版本。

你有什麼建議我應該檢查什麼?

回答

0

您應該檢查兩端是否只使用writeObject()readObject(),並且您在套接字的生命週期中(兩端都使用相同的對象流)。 72730024具有一段ASCII文本的外觀。

+0

我已經檢查過,我在兩端使用相同的對象,只使用writeObject()和readObject()方法。如果我不使用它們,其他消息也應該失敗。你能告訴我在哪裏可以檢查錯誤代碼嗎?我不知道72730024是指ASCII文本。 –

+0

我已經重新開始了,錯誤代碼更改爲:73720028. –

+0

因此您發送了其他錯誤信息。將數字視爲十六進制並查找ASCII代碼。您還需要檢查您是否在同一個套接字上使用任何其他流。 – EJP

相關問題