Как я могу заставить свою программу отправить сообщение игроку, предупреждая его, если его противник закончил вводить свой ход? - PullRequest
0 голосов
/ 30 сентября 2018

Я использую сервер, который принимает двух клиентов и соединяет их друг с другом в симуляции битвы.Когда один игрок вводит команду, я хочу, чтобы мой сервер сообщил другому игроку, что его ждут.Проблема в том, что мой сервер очень синхронизирован, и это может нарушить синхронизацию.Кроме того, метод, который ожидает, когда игрок введет ход, использует цикл 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);
}

Мои кнопки постоянно прослушивают ввод, и программа не может прогрессировать, пока игрок не введет ход.Мне нужно получить данные с сервера (если они есть), а также продолжить выполнение всего цикла.

...