Клиент / сервер работает (= кодируется) немного по-другому.
Сервер будет делать что-то очень расплывчато, например:
ServerSocket serverSocket = new ServerSocket(portNumber);
for (;;) {
Socket clientSocket = serverSocket.accept(); // Await a client request
executorService.startWorker(clientSocket);
}
(Этот код взят из неПример UDP; вы, вероятно, уже используете DatagramSocket
для UDP.)
Это цикл, ожидающий UDP-сообщение и затем отправляющий его в новый поток.
Это поддерживает работу сервера.
Однако все асинхронно, как и сам UDP.Рабочие должны создавать большие конструкции данных с помощью очередей и т. Д.