【发布时间】:2014-05-25 08:01:32
【问题描述】:
我目前正在做一个 java 项目。
我在服务器类中有一个方法,它将输入字符串发送到特定的套接字。
private void inviaSingoloGiocatore(Giocatore giocatore, String outputString) throws DisconnessoGiocatoreCorrenteException {
long beforeTime = System.currentTimeMillis();
long elapsedTime = 0;
boolean freezed = false;
while (TIMER - elapsedTime > 0){
try {
Socket socket = sockets[giocatore.getIndice()];
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
outputString += "\n";
out.write(outputString);
out.flush();
return;
} catch (IOException e) {
if(!freezed){
inviaTuttiGiocatori(encoder.freeze(giocatore)); //Freeze
freezed = true;
}
}
elapsedTime = System.currentTimeMillis()-beforeTime;
}
inviaTuttiGiocatori(encoder.disconnesso(giocatore));//disconnesso
throw new DisconnessoGiocatoreCorrenteException();
}
问题是刷新仅在我使用调试工具秒表并按 f6 执行时才有效。即使我把秒表放在下一行,它也不再起作用了。
我无法弄清楚这种问题。
【问题讨论】:
标签: java debugging flush bufferedwriter