Я хочу написать небольшую клиент-серверную текстовую игру, которая обрабатывает несколько клиентских подключений и постоянно влияет на состояние игры.Мне интересно, как лучше всего обрабатывать несколько соединений, чтобы команды обрабатывались в порядке их поступления на сервер.
В идеале я не собираюсь использовать преимущества многопоточности, по крайней мерена уровне обработки команд.Я был бы согласен с каждым клиентом, имеющим отдельный поток (чтобы иметь блокировку ввода-вывода в каждом потоке), до тех пор, пока я мог бы объединить обработку в одном потоке после этого.и сервер будет текстовым, я не уверен, как лучше настроить связь.Если бы я выбрал блокирующий ввод-вывод, как бы я поставил в очередь обработку в одном потоке?
В качестве альтернативы, если бы я выбрал неблокирующий ввод-вывод и использовал селектор для запроса, когда клиенты писали на сервер,Как я могу получить строку неизвестной / неограниченной длины без использования ByteBuffer установленного размера?Неблокирование также способствует сохранению обработки в одном потоке, поскольку она может просто считывать данные с клиентских подключений по мере того, как они отправляют новые данные.Однако, когда я попытался реализовать его с помощью read / writeUTF, я столкнулся с IllegalBlockingModeException heh.
Любые ответы на вопросы или предложения о том, как сделать это способом, который я не упомянул, будут искренне оценены.!Я довольно новичок в работе с клиентами и серверами, поэтому не знаю, будут ли наиболее подходящими java.io или java.nio.
Извините за запутанный вопрос.Я думаю, что сбежал с собой.