Как перехватить KeyboardInterrupt при использовании функций блокировки в Python - PullRequest
0 голосов
/ 29 марта 2020

Я хотел создать сценарий Python, который обслуживает соединение до тех пор, пока не прервется нажатием Ctrl + C, но он просто не работает, если соединение не происходит в первую очередь.

Упрощенный код проблемы :

...

try:
    conn, ADDR = listening_socket.accept() # Blocks, which is probably the problem.
    while True:
        # This code is never reached.
        ...
except KeyboardInterrupt:
    # Handle the interrupt (that does not happen).
    ...

Я предполагаю, что проблема в том, что socket.accept () блокирует, и в этом случае в то время будет несколько точек l oop, которые также будут игнорировать прерывания. Есть ли способы заставить эту работу работать так, как мне бы хотелось?

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