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