Я создаю простой сервер сокетов 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).