Как отменить блокирующий поток, вызванный input () в Python? - PullRequest
0 голосов
/ 03 мая 2018

Я начинаю больше узнавать о протоколах TCP в Python, и у меня возникают проблемы с блокировкой потоков внутри клиентов.

В идеале мое приложение должно работать так: у меня есть разные клиенты с функциями потоков, каждый из которых содержит функцию ввода для получения определенной команды для отправки на сервер (например, «X»). Когда в одном клиенте нажимается «X», сервер принимает его и отправляет всем другим клиентам сообщение, информирующее, что программа продолжит работу, и освобождает их от их функций ввода - почти как отмена.

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

Я хотел бы использовать socket и модуль select для подключения, без подключения к какой-либо конкретной ОС (поэтому нет msvcrt, который работает в Windows или select модуль для мониторинга stdin, который доступен только в ОС UNIX).

Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...