#java #networking #server #client
#java #сеть #сервер #клиент
Вопрос:
Я пытаюсь создать программу чата клиент-сервер на Java. Я хочу, чтобы клиенты связывались друг с другом через сервер одновременно. Я хотел бы знать, сколько потоков я буду использовать как на сервере, так и на клиенте.
Комментарии:
1. Минимальное количество потоков: в
Server Side
одном основном потоке, в котором запущен Сервер, по одному потоку для каждого подключающегося клиента. ВClient Side
одном потоке, который ожидает сообщений от сервера,One Main Thread from the Applcation
. Это просто модель, которую вы можете использовать…
Ответ №1:
Это зависит от вашего дизайна. Если вы разрабатываете свой проект так, чтобы все клиенты сохраняли соединение до тех пор, пока пользователь не завершит работу, тогда вы должны назначить новый поток для всех новых подключений. Потому что в случае сохранения соединения сервер не сможет ничего сделать, кроме прослушивания соединения, если вы попытаетесь использовать один поток для всех подключений.
Однако, если ваши клиенты периодически подключаются к серверу, вы можете использовать один поток или фиксированное количество потоков (например, пул потоков) для обработки подключений.
Я рекомендую использовать модель потока для каждого соединения, чтобы поддерживать все соединения в рабочем состоянии.