みなさん、こんにちは!ソケット:特定の条件でBufferedReaderから読み込みおよび/またはPrintWriterに書き込むことができません
シンプルなメッセージングアプリケーションを作成しようとしていますが、大きな問題の解決策が見つかりません。正確には2つの大きな問題があります。ここで
コード:
@Override
public void run() {
String incoming;
try {
while (true) {
if (!connected)
break;
// READING
if (reader.ready() && (incoming = reader.readLine()) != null) {
notifier.putCommand(incoming, this);
incoming = null;
}
// WRITING
synchronized (messagges) {
for (String message : messagges) {
System.out.println("SENDING MESSAGE TO CLIENT: " + message);
writer.println(message);
}
messagges.clear();
}
writer.println("b");
}
} catch (IOException e) {
MyLogger.log(e);
}
}
問題:
私はBufferedReaderの上の任意のメッセージを読むことができないクライアント
(writer.println("b"))
に毎回書き込みジャンクテキストは、送信されていない場合それから。そんなことがあるものか?!クライアント側では、「b」がたくさん表示されますが、
(writer.println(message))
の文の中には何も送信されません。それは本当に奇妙です。なぜなら、私はサーバーに印刷するので、クライアントにメッセージを送信します。[...]コンソールに表示されますが、メッセージは送信されません。
何が問題なのですか?