Добрый день всем!
Я пытаюсь создать приложение для обмена сообщениями, но не могу найти решение большой проблемы. Точно, есть две большие проблемы.
Вот код:
@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);
}
}
Проблемы:
Если я не каждый раз пишу ненужный текст клиенту (writer.println("b"))
Я не могу прочитать ни одно сообщение в BufferedReader, отправленное с него. Как это возможно?!
На стороне клиента я вижу только много "b", но все, что отправлено внутри оператора для (writer.println(message))
. Это действительно странно, потому что когда я печатаю на сервере ОТПРАВКА СООБЩЕНИЯ КЛИЕНТУ: [...] Я вижу это в консоли, но затем сообщение не отправляется.
В чем может быть проблема?