Я начинаю больше узнавать о протоколах TCP в Python, и у меня возникают проблемы с блокировкой потоков внутри клиентов.
В идеале мое приложение должно работать так: у меня есть разные клиенты с функциями потоков, каждый из которых содержит функцию ввода для получения определенной команды для отправки на сервер (например, «X»). Когда в одном клиенте нажимается «X», сервер принимает его и отправляет всем другим клиентам сообщение, информирующее, что программа продолжит работу, и освобождает их от их функций ввода - почти как отмена.
Проблема заключается в том, что входные функции блокируют клиентов от выхода из цикла. Я попытался установить функции входного потока как демон, но он блокируется, пока вы не нажмете что-нибудь - в любом случае, к сожалению, это единственный обходной путь, который я нашел до сих пор.
Я хотел бы использовать socket
и модуль select
для подключения, без подключения к какой-либо конкретной ОС (поэтому нет msvcrt
, который работает в Windows или select
модуль для мониторинга stdin
, который доступен только в ОС UNIX).
Любая помощь будет принята с благодарностью!