4

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();
        }
    }
}
4

2 に答える 2

6

ストリームの終わりに到達しました。読み取るデータがありません。

サーバーが使用していないwriteUTF(),か、サーバーと同期していない可能性があります。サーバーが行を書いている場合は、使用する必要がありますBufferedReader.readLine().

于 2013-08-08T22:35:26.923 に答える