【发布时间】:2017-07-21 08:44:23
【问题描述】:
我有一个不太明白的问题。我在两台不同的机器上有一个服务器套接字和一个客户端套接字。服务器将不断发送十六进制数据,连接的客户端将读取数据流并做一些工作。 大多数流量都是以这种方式发生的。在极少数情况下,客户端会向服务器发送一个字节串。在这一点上,我得到 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
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。