我正在尝试为多线程服务器程序保持连接打开。当我点击一个按钮时,我希望它向所有连接的客户端发送一条测试消息。
public void run() {
try {
Scanner in = new Scanner(socket.getInputStream());
PrintWriter out = new PrintWriter(socket.getOutputStream());
readUpdate(out, in);
while(true){sendUpdate(out);}
} catch (Exception e) {
e.printStackTrace();
}
}
使用大量 CPU。
这是我的 sendUpdate 方法。
private void sendUpdate(final PrintWriter out) {
new Thread(new Runnable() {
public void run() {
if(Server.send) {
try {
if (Server.command != "idle") {
System.out.println("Sending");
out.println("!msg@" + Server.command);
out.flush();
Server.send = false;
Thread.sleep(100);
}
} catch (Exception ex) {
}
}
}
}).start();
}
如果有人可以帮助我保持连接打开并准备发送数据,我将不胜感激。