我有一个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")