2016-03-23 45 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

相关问题