PHP CLI - получить пользовательский ввод, все еще делая вещи в фоновом режиме

Я работаю над игрой, написанной на PHP, которая запускается в консоли. Вспомните старые MUD и другие текстовые игры, даже некоторые ASCII-произведения!

В любом случае, я пытаюсь добиться того, чтобы что-то происходило, в то же время принимая пользовательский ввод.

Например, допустим, что это игра для двух игроков, и игрок 1 ждет, пока игрок 2 сделает ход. Это легко сделать, просто прослушав сообщение.

Но что, если игрок 1 хочет изменить некоторые параметры? Что делать, если они хотят просмотреть подробную информацию об аспектах игрового состояния? Как насчет того, чтобы уступить игру? Игрок может захотеть сделать много вещей, ожидая, когда его противник сделает ход.

К сожалению, лучшее, что у меня есть сейчас, это то, что Ctrl + C полностью убивает программу. Другой игрок остается в подвешенном состоянии, пока соединение не будет разорвано. Да, и игра полностью потеряна.

Я получаю пользовательский ввод сfgets(STDIN), Но это блокирует выполнение до тех пор, пока ввод не будет получен (что, как правило, хорошо).

Возможно ли даже для консольной программы, как эта, обрабатывать ввод и вывод одновременно? Или мне просто посмотреть на какой-нибудь другой интерфейс?

Ответы на вопрос(3)

Ваш ответ на вопрос