【问题标题】:EOFException in readUTFreadUTF 中的 EOFException
【发布时间】:2013-08-09 07:53:54
【问题描述】:

我在使用readUTF() 方法时低于EOFException,请告诉我如何解决这个问题,还请建议readUTF() 如何通过其他网络传输套接字信息

import java.io.*;
import java.net.*;

public class GreetingServer {
    public static void main(String args[]) {
        String servername =args[0];
        int port = Integer.parseInt(args[1]);

        try {
            System.out.println("Server Name "+ servername +"Port"+port);

            Socket client = new Socket(servername,port);
            System.out.println("Just connected to"+ client.getRemoteSocketAddress());
            OutputStream outs = client.getOutputStream();
            DataOutputStream dout = new DataOutputStream(outs);
            dout.writeUTF("Hello From"+client.getRemoteSocketAddress());
            InputStream in = client.getInputStream();
            DataInputStream din = new DataInputStream(in);
            System.out.println("Server Says"+ din.readUTF());
            client.close();
        }
        catch (EOFException f) {
            f.printStackTrace();
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

  • 显示您的服务器端代码。问题应该出在发送不正确/不完整数据的服务器端

标签: java eofexception


【解决方案1】:

您已到达信息流的末尾。没有更多数据要读取。

可能您的服务器没有使用writeUTF(), 或者您与它不同步。如果服务器正在写行,你应该使用BufferedReader.readLine().

【讨论】:

  • 如果不是使用 writeUTF 编写的,那么如何解决这个问题?
  • @AlexanderZaldostanov Err,不要打电话给readUTF()?如果它不是用writeUTF() 编写的,你就不应该调用readUTF()。你应该调用别的东西,这取决于它是怎么写的。
  • ... readUTF() 和 writeUTF() 也应该是相同的顺序。
【解决方案2】:

docs 代表readUtf() 状态;

首先,读取两个字节并用于构造一个无符号的 16 位 与 readUnsignedShort 方法完全相同的整数。这个 整数值称为 UTF 长度并指定 要读取的附加字节。然后将这些字节转换为 通过分组考虑字符。每组的长度为 从组的第一个字节的值计算。字节 跟随一个组(如果有的话)是下一个组的第一个字节。

这向我表明,您尝试使用 readUtf() 读取的内容不是 UTF,因为 EOFException 发生在 End of File (EOF) is read unexpectedly.

检查您是否按照服务器发送它们的顺序读取正确的类型等。您应该遵循确定的协议,而不是盲目地阅读。

【讨论】:

  • EOFException 也发生在 EOF 当然,当它“预期”遇到时。
猜你喜欢
  • 1970-01-01
  • 2020-05-03
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
相关资源
最近更新 更多