Я разрабатываю сетевую игру, в целом:
У меня есть сервер, который запускает serverThread для каждого подключенного к нему клиента.
Его цель - прослушивать сообщения от конкретного клиента.и обработать его на сервере.
Кроме того, для каждого открытого клиента запустите clientThread, который является потоком прослушивания сообщений от сервера.
Два потока - это довольно простые и похожие потоки, которые реализуют интерфейс Runnable.и, следовательно, переопределяют метод run.
Каждый метод Run является своего рода бесконечным циклом, который имеет при запуске команду (блокирующую команду):
int command = m_In.readInt ();
, а затем выполнить процесс путем переключения структуры дел над полученной командой.
после завершения процесса, цикл заставляет код вернуться к блокировке m_In.readInt ()
Чтобы дождаться прихода другой команды.
У меня такой вопрос: в моей сетевой игре достаточно опций, которые используют связь через этот m_In, так что же произойдет, если два или более сообщения почти объединятся в clientThread, как будет действовать dataInputStream?
Начнет ли оно обрабатывать первое сообщение, а после его завершения захватит второе, которое находится в какой-то очереди?или оно может отбросить второе сообщение и оно будет потеряно?Может быть, этот поток имеет буфер, поэтому он хранит второе сообщение в очереди или что-то?
Спасибо