我在使用 EOFException 方法时低于 readUTF(),请让我知道我如何克服这个问题,并请建议 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();
        }
    }
}

最佳答案

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

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

关于java - readUTF 中的 EOFException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17972172/

10-08 23:16