マルチスレッド サーバー プログラムの接続を開いたままにしようとしています。ボタンを押すと、接続されているすべてのクライアントにテスト メッセージが送信されます。
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();
}
誰かが接続を開いたままにし、データを送信する準備ができているのを手伝ってくれるなら、私はそれを感謝します.