コンソールで実行しているチャット ルームがあります。サーバーは、スレッドの使用を通じて複数のクライアントをサポートします。私がそれを実行すると、サーバー、次にクライアント、クライアントは正常に接続します。私がクライアント プログラムを通じてメッセージ「hello」を送信すると、クライアントはメッセージを出力し、サーバーがメッセージを受信したことを示します (これがサーバーの役割です)。しかし、同時に別のクライアントを実行すると、一方のクライアントでメッセージを送信しますが、メッセージは他方のクライアントに出力されません。なぜそうなるのでしょうか?エラーはなく、クライアントは正常に接続されています。
よろしく Bl-H
リクエストに応じてコードを投稿します。
これはサーバーがクライアントにメッセージを送信するためのコードです (これはスレッド クラスのメソッドです)。
public void run() {
PrintStream output = null;
BufferedReader input = null;
String message;
try {
//i/o for clients:
output = new PrintStream(server.getOutputStream());
input = new BufferedReader(new InputStreamReader(server.getInputStream()));
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
while(true) {
try {
message = input.readLine();
output.println(message);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
}
}