【问题标题】:datainputstream throwing eofexception when receiving messages接收消息时datainputstream抛出eofexception
【发布时间】:2015-03-10 06:12:39
【问题描述】:

我正在尝试使用 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)

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

【问题讨论】:

    标签: java sockets io datainputstream


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      相关资源
      最近更新 更多