そのため、複数のクライアントが単一のサーバーに接続できる単純なサーバー クライアント プログラムを作成しようとしています。クライアント側とサーバー側の両方でスレッドを実行しています。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();
}
}
}