#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);