0

サーバーの基本的なコードがあります。

        ServerSocket serverSocket = new ServerSocket(14000);
        Socket clientSocket = serverSocket.accept();
        BufferedReader in = new BufferedReader(
                new InputStreamReader(clientSocket.getInputStream()));
        PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
        String incoming;
        while((incoming = in.readLine()) != null){
            System.out.println("Client Says: " + incoming);
            out.println("Client Says: " + incoming);
            out.flush();
            //if(incoming.equals("HELLO")) break;
        }
        clientSocket.close();
        serverSocket.close();

ストリームが深刻な頭痛の種になっているので、ストリームをさらに理解しようとしています。私が読んだことから、println メソッドは自動的にフラッシュしますが、後でフラッシュ メソッドが呼び出されない限り、この行はクライアントに配信されませんか? 私はこれについてのしっかりした説明を探しているだけですか?

4

2 に答える 2

2

PrintWriter の自動フラッシュを有効にするには、そのコンストラクターの 2 番目の引数を true に設定する必要があります。

于 2013-03-19T21:52:05.947 に答える
1

私は以前にこの問題を抱えていました。

PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);

それが違いを生むでしょう。自動フラッシュしないと、エラーが発生したり、データが null として受信されたりする可能性があります。よろしくお願いします。

于 2013-03-19T21:54:46.403 に答える