Я использую сервер, который принимает двух клиентов и соединяет их друг с другом в симуляции битвы.Когда один игрок вводит команду, я хочу, чтобы мой сервер сообщил другому игроку, что его ждут.Проблема в том, что мой сервер очень синхронизирован, и это может нарушить синхронизацию.Кроме того, метод, который ожидает, когда игрок введет ход, использует цикл while в другом классе, который не позволяет игроку проверять, получена ли какая-либо информация, до тех пор, пока цикл не закончится (что будет означать, что игрок уже ввел свой ход, побеждая цель знаниядругой человек ждал).Есть ли способ использовать входной поток в цикле while, который мгновенно проверит, доступна ли информация, и если нет, продолжит выполнение остальной части кода цикла, вместо того, чтобы ждать, пока у него что-то получится, и остановить код?Это очень легко решило бы мою проблему.
public void buttonMove(InputStream in) {
move = "";
while(move == "") {
in.doSomething() // check for data from server but if not keep running
move = move;
}
card.setMove(move);
}
Мои кнопки постоянно прослушивают ввод, и программа не может прогрессировать, пока игрок не введет ход.Мне нужно получить данные с сервера (если они есть), а также продолжить выполнение всего цикла.