Python программа перестаёт реагировать после команды recv(1024)

Всем здравствуйте! Пытаюсь написать программу, с помощью которой множество клиентов подключатся к серверу, а сервер в свою очередь может выбрать с каким из клиентов взаимодействовать. Всё работает до момента, как я в каком-либо виде применяю команду c.recv(1024), где c содержит s.accept(). После выполнения данной команды программа (в моём случае - тред) перестаёт подавать признаки жизни. Код сервера прилагается

import socket
from _thread import start_new_thread

host = "хост"
port = 4444

threads = []
thread_num = 0

cur_thread = -1

main_command = []
# command = ""

def threaded(c, thr_id):
    global cur_thread

    id = thr_id
    while True:
        try:
            data = c.recv(1024).decode("utf8")
            if main_command[1] == 0:
                print(0)
                command = input(str(id) + "> ")
                c.send(command.encode())
        except socket.error as e:
            print("Тред " + str(thr_id) + " завершён")
            del threads[thr_id]
            break
        except Exception as e:
            print("Тред " + str(thr_id) + " завершён")
            del threads[thr_id]
            break
        if data:
            print(data)
            # file.write(data)
            # c.send(bytes(message.encode("utf8")))
        if not data:
            break


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(5)
while True:
    sock, addr = s.accept()
    print('Connected to :', addr[0], ':', addr[1])
    thread_num = len(threads)
    test = start_new_thread(threaded, (sock, thread_num))
    threads.append(test)
    print("Current run threads:" + str(threads))
    #cur_thread = 0
    cmd = input()

    if cmd.startswith("run"):
        main_command = cmd.split(' ')
        cur_thread = int(main_command[1])
        #print(cur_thread)


Ответы (0 шт):