Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java InputStream抛出Java.io.StreamCorruptedException_Java_Sockets - Fatal编程技术网

Java InputStream抛出Java.io.StreamCorruptedException

Java InputStream抛出Java.io.StreamCorruptedException,java,sockets,Java,Sockets,我有一个我不太明白的问题。我在两台独立的机器上有一个服务器套接字和一个客户端套接字。服务器将不断以十六进制格式发送数据,连接的客户端将读取数据流并执行一些工作。 大部分交通都是以这种方式发生的。在极少数情况下,客户端会向服务器发送bytestring。在这一点上,我得到了 此行的Java.io.StreamCorruptedException: ObjectInputStream in = new ObjectInputStream(socketFromClient.getInput

我有一个我不太明白的问题。我在两台独立的机器上有一个服务器套接字和一个客户端套接字。服务器将不断以十六进制格式发送数据,连接的客户端将读取数据流并执行一些工作。 大部分交通都是以这种方式发生的。在极少数情况下,客户端会向服务器发送bytestring。在这一点上,我得到了 此行的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)
0200001b5正是客户端发送到服务器的bytestring

我不明白为什么我会得到这个StreamCorruptedException。我的 代码逻辑没有任何流头。什么是流头? 我查看了javadoc,我无法理解为什么会发生这种情况

非常感谢您的任何提示

谢谢


-v

您的客户端没有使用ObjectOutputStream写入数据:这就是您看到此异常的原因。ObjectOutputStream和ObjectInputStream用于序列化和反序列化Java对象

<>而不是使用ObjistInPixStand读取数据,考虑使用BuffErdRe读器或DATAN。
请参阅。

寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。