接收消息时抛出 eofException 的数据输入流



我正在尝试使用 Java 中的套接字在服务器和客户端之间交换消息。我正在使用以下代码作为我的服务器

...
    try{
            if(acceptConnection){
                s = serverSocket.accept();
                System.out.println("connected");
                acceptConnection = false;
                dis = new DataInputStream(s.getInputStream());
            }
            System.out.println(dis.readUTF());
...
第一条消息

已正确接收,但是当我发送第二条消息时,出现以下错误

java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340)
at java.io.DataInputStream.readUTF(DataInputStream.java:589)
at java.io.DataInputStream.readUTF(DataInputStream.java:564)
at Server.run(Server.java:23)

谁能告诉我问题是什么以及如何解决?提前感谢

使用 DataInputStream 的 dis.read() 方法来不获取异常。

请从 DataInputStream 更改为 BufferedInputStream,因为当流到达末尾时,DataInputStream 会在读取所有字节之前抛出 EOFException

相关内容

  • 没有找到相关文章

最新更新