1

そのため、複数のクライアントが単一のサーバーに接続できる単純なサーバー クライアント プログラムを作成しようとしています。クライアント側とサーバー側の両方でスレッドを実行しています。5行のテキストを含むファイル「loginuser.txt」があります。このコードはサーバー スレッドです。outToClient.println("xxx") などを呼び出すと、クライアントは一度に複数の行を受信しません。ユーザーが (クライアント端末の) キーボードで何かを入力するたびに、ファイルの次の行が同じ端末に表示されます。なぜこれが起こっているのか誰か教えてもらえますか?どこが間違っていますか?基本的な問題: サーバーからクライアントへの単一行の println() の場合、クライアント側で毎回何かを入力する必要があるようです。

BufferedReader inFromUser=new BufferedReader(new InputStreamReader(System.in));
BufferedReader inFromClient=new BufferedReader(new InputStreamReader(client.getInputStream()));
BufferedReader userlogr=new BufferedReader(new FileReader("loginuser.txt"));
PrintWriter outToClient = new PrintWriter(client.getOutputStream(), true);
if(check==1)
    {
        fromclient=inFromClient.readLine();
        if(fromclient.compareTo("xxx")==0)
        {
            String line;
            while((line=userlogr.readLine())!=null)
            {
                System.out.println(line);
                outToClient.println(line);
                outToClient.flush();
            }

        }
    }
4

1 に答える 1