我有一個問題,我不太明白。我有兩個獨立的機器上的服務器套接字和客戶端套接字。服務器將不斷髮送數據在十六進制和連接客戶端將讀取數據流並做一些工作。 大部分流量都是以這種方式發生的。在極少數情況下,客戶端會向服務器發送一個字節串。在這一點上,我得到 Java.io.StreamCorruptedException在這一行:Java InputStream拋出java.io.StreamCorruptedException
ObjectInputStream in = new
ObjectInputStream(socketFromClient.getInputStream());
例外:
java.io.StreamCorruptedException: invalid stream header: 020001B5
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:857)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349)
at ReadInput.run(ReadInput.java:21)
at java.lang.Thread.run(Thread.java:745)
「020001B5」是完全字節串即客戶端發送到服務器。
我不明白爲什麼我得到這個StreamCorruptedException。我的 代碼邏輯沒有任何「流頭」。什麼是流標頭? 我檢查了javadoc,我無法理解爲什麼會發生這種情況。
任何提示非常感謝。
感謝
-v
尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤*以及在問題本身中重現它所需的最短代碼*。 –