Python 如何在cmd中取消对input()方法的调用

Python 如何在cmd中取消对input()方法的调用,python,python-3.x,Python,Python 3.x,我有以下问题 在客户机系统中,当客户机发送消息时,它被连接到队列以逐个应答消息 现在,如果正在服务的客户端断开连接,您应该阅读并回复下一条消息。问题在于,当客户端断开连接时,系统正在等待输入中的文本输入,例如: Received: Customer Message 1 Reply to client 1:> Message from client2 #If client 1 disconnects 预计将跳过此输入,这样它就不会等待对已离开的客户端的响应,而这样的结果仍然存在: Rece

我有以下问题

在客户机系统中,当客户机发送消息时,它被连接到队列以逐个应答消息

现在,如果正在服务的客户端断开连接,您应该阅读并回复下一条消息。问题在于,当客户端断开连接时,系统正在等待
输入中的文本输入,例如:

Received: Customer Message 1
Reply to client 1:> Message from client2 #If client 1 disconnects
预计将跳过此
输入
,这样它就不会等待对已离开的客户端的响应,而这样的结果仍然存在:

Received: Customer Message 1
Reply to customer 1:> # Customer 1 left
Received: Customer Message 2
Reply to client 2:> Message to client 2
server.py

import socket
import threading

class Hilo1(threading.Thread):
    def __init__(self,Funcion,Funcion2,cliente,direccion):
        threading.Thread.__init__(self)

        self.Funcion = Funcion
        self.Funcion2 = Funcion2
        self.Cliente = cliente
        self.Direccion = direccion

    def run(self):
        try:
            self.Funcion(self.Cliente,self.Direccion)
        except ConnectionResetError:
            self.Funcion2(self.Cliente)


class Servidor_C():
    def __init__(self):

        self.ListaUsuarios = []
        self.ListaMensajes = []

        self.Escucha()

    def EliminarUsuario(self,cliente):
        self.ListaUsuarios.remove(cliente)
        for elemento in self.ListaMensajes:
            if elemento[1] == cliente:
                self.ListaMensajes.remove(elemento)
                self.LeerMensaje()

    def LeerMensaje(self):
        while self.ListaMensajes:
            for i,mensaje in enumerate(self.ListaMensajes):
                print("\n",mensaje[0])
                resuesta = input("> ")
                print("\n",mensaje[1],"--","nuevo conexion")
                mensaje[1].sendall(resuesta.encode())
                self.ListaMensajes.remove(self.ListaMensajes[i])


    def RecibirMensaje(self,cliente,direccion):
        while True:
            mensaje = cliente.recv(1024).decode()
            self.ListaMensajes.append([mensaje,cliente,direccion])
            if len(self.ListaMensajes) == 1:
                threading.Thread(target=self.LeerMensaje).start()

    def Escucha(self):
        servidor = socket.socket()
        conexion = ("192.168.8.5",500)

        servidor.bind(conexion)
        servidor.listen(2)

        while True:
            cliente,direccion = servidor.accept()
            self.ListaUsuarios.append(cliente)
            Hilo1(self.RecibirMensaje,self.EliminarUsuario,cliente,direccion).start()

Servidor_C()
client.py

import socket

conexion = ("192.168.8.5",500)
cliente = socket.socket()
cliente.connect(conexion)

while True:
    linea = input("> ")
    cliente.sendall(linea.encode())
    respuesta = cliente.recv(1024).decode()
    print(respuesta)
cliente.close()