【问题标题】:client/server, exception: StreamCorruptedException: invalid stream header: 75720002客户端/服务器,异常:StreamCorruptedException:无效的流标头:75720002
【发布时间】:2014-08-08 15:40:55
【问题描述】:

在下面的程序中,客户端必须输入数字并将它们发送到服务器。服务器必须计算客户端发送的数字并将结果发送给客户端。

对于以下代码,我的服务器类中出现异常:

java.io.StreamCorruptedException: invalid stream header: 75720002
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)

在我的客户端类中,异常:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1585)

我该如何解决这个问题?

【问题讨论】:

    标签: java network-programming client-server


    【解决方案1】:

    您不能围绕同一个底层流包装多个流/写入器(您的客户端将套接字输出流包装两次,而您的服务器将套接字输入流包装两次)。如果你想发送对象,你只需要使用基于对象的流。

    【讨论】:

    • 好吧,对于所有类型的通信,最好使用对象流而不是扫描仪?
    • @Xerath - 不,对象流并不比扫描仪更好(或更差),只是不同。选择适合您的并坚持使用,但您不能在同一信息流中同时使用两者。
    • 你能创建任何关于我应该如何实现我的场景的代码示例吗?
    • @Xerath - 你的代码已经是一个很好的起点,只需选择一种类型的通信流并坚持下去(提示:ObjectOutputStream 可以发送字符串)。
    • 嘿再次@jtahlbonr,除了发送对象,我还要如何通信,传递正常的字符串消息?我不明白这个逻辑。
    猜你喜欢
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多