大家下午好!
我正在尝试创建一个简单的消息传递应用程序,但我找不到一个大问题的解决方案。显然有两个大问题。
在这里,代码:
@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上发送的任何消息。这怎么可能?!客户端的(writer.println(message))语句中发送了任何东西。这真的很奇怪,因为当我在服务器上打印消息给客户端时:.我在控制台中看到它,但是消息没有发送。有什么问题吗?
发布于 2011-10-23 12:21:42
您需要了解缓冲是如何工作的,特别是学习如何使用flush()方法指示缓冲编写器实际发送数据。
https://stackoverflow.com/questions/7866080
复制相似问题