在python中,如何使用键盘中断来中断等待接受TCP连接的无限循环

在python中,如何使用键盘中断来中断等待接受TCP连接的无限循环,tcp,keyboard,interrupt,Tcp,Keyboard,Interrupt,我有一个TCP服务器,它正在无限while循环中等待连接。问题是,我猜只要它遇到accept()方法,它就会进入睡眠状态,直到有一个要接受的连接。我想用一个键盘中断来打破循环,但我猜当函数正在等待连接时,它只是忽略了中断 def start_main_server(self): print("The Server is ready to recieve") socket_threads = list() count = 0 while 1: try

我有一个TCP服务器,它正在无限while循环中等待连接。问题是,我猜只要它遇到accept()方法,它就会进入睡眠状态,直到有一个要接受的连接。我想用一个键盘中断来打破循环,但我猜当函数正在等待连接时,它只是忽略了中断

def start_main_server(self):
    print("The Server is ready to recieve")
    socket_threads = list()
    count = 0
    while 1:
        try:
            connectionSocket, addr = self.serversocket.accept()
            print("accepted")
            connectionSocket.send(json.dumps(self.users).encode())
            socket_threads.append(Thread(target=self.login,args=(connectionSocket,)))
            socket_threads[count].start()
            count += 1
        except KeyboardInterrupt:
            break
可执行代码:

# coding=utf-8 from socket import * port = 12000 servername = "127.0.0.1" connection =socket(AF_INET,SOCK_STREAM) connection.bind((servername,port)) connection.listen(1) print("SERVER STARTED") while 1: try: x = connection.accept() except KeyboardInterrupt: print("Keyboard Interrupt Occured") break print("I am out of loop") #编码=utf-8 从套接字导入* 端口=12000 servername=“127.0.0.1” 连接=套接字(AF_INET,SOCK_STREAM) connection.bind((服务器名,端口)) 连接。听(1) 打印(“服务器已启动”) 而1: 尝试: x=连接。接受() 除键盘中断外: 打印(“发生键盘中断”) 打破 打印(“我不在循环中”)
您确定它忽略了中断吗?如果您尝试了一些代码,将会很有帮助:)好吧,我想这是忽略了。嗯,实际上我是在命令提示符下执行代码的,ctrl+c没有效果,这是因为命令提示符还是其他原因。感谢您提前提供帮助。您能提供一个可运行的代码示例吗?这可以吗@FormerNcp