Как узнать, сколько пользователей находится в Сети, используя многопоточность и tcp-сокет в java

#java #multithreading

#Ява #многопоточность

Вопрос:

Я создаю онлайн-игру с использованием сокета java, и я не знаю, как FrmServer установить метку для количества пользователей, вошедших в систему. В каждом EchoThread будет работать свой клиент и предстоит public static ArrayListlt;EchoThreadgt; clients = new ArrayListlt;gt;(); решить разделение комнат для игр.

 public static void main(String[] args) {  ServerSocket serverSocket = null;  Socket socket = null;  FrmServer frmServer = new FrmServer(); // this frame server need to know how many clients are logged in  try {  serverSocket = new ServerSocket(PORT);  } catch (IOException e) {  e.printStackTrace();   }  while (true) {  try {  socket = serverSocket.accept();  } catch (IOException e) {  System.out.println("I/O error: "   e);  }  // new thread for a client  EchoThread echoThread = new EchoThread(socket);  echoThread.start();  }  }  

Как я могу запустить сервер форм, чтобы узнать, что пользователь успешно вошел в систему, и увеличить или уменьшить значение метки, если пользователь отключится?

ПРИМЕЧАНИЕ: Я обработал вход и отключение, и оба они были разрешены в EchoThread

Ответ №1:

Я сделал это, мне просто нужно передать frmServer объект в EchoThread и вызвать функцию setLabel тоже из Echothread.

 EchoThread echoThread = new EchoThread(socket, frmServer);