Невозможно KeyboardInterrupt socket.accept в python - PullRequest
0 голосов
/ 05 марта 2020

Я создаю простой сервер сокетов TCP в python, и после socket.accept() я не могу выйти по control + c. После просмотра вопросов с той же проблемой я увидел, что мне нужно попробовать control + break или \, но все еще не могу выйти.

После этого я увидел, что, добавив try и except KeyboardInterrupt:, я буду возможность выхода из запущенного кода.

python код:

import socket

# Create Listener
ip = "0.0.0.0"
port = 4444
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    server.bind((ip , port))
    server.listen(1)
    print("[+] Server bind on %s:%d" %(ip,port))
except socket.error as error:
    print("[!] Unable to bind on %s:%d" %(ip,port))

# Waiting for connections 
while True:
    print("Wating for connections...")
    connection = None
    try:
        connenction, addr = server.accept()
        print("[+] Accecpted connection from %s:%d" % (addr[0],addr[1]))
        data = connenction.recv(30)
        if not data:
            break
        else:
            clientinput = data.decode('utf-8')
            print(clientinput)
        connenction.send(("Hello from server").encode())
    except KeyboardInterrupt:
        if connection:
            connection.close()
        break

Я запускаю код на windows 10 (я видел, что это проблема на windows).

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