Python 中断 SIGINT 上的套接字接收
Python break from socket receive on SIGINT
我正在开发一个从套接字接收数据的程序,当发送信号时,我希望能够中断接收。
我现在拥有的:
class Killer:
die = False
def __init__(self):
signal.signal(signal.SIGINT, self.terminate)
signal.signal(signal.SIGTERM, self.terminate)
def terminate(self, signum, frame):
print ("caught " + str(signum))
self.die = True;
sock = socket.socket()
# Generic socket setup
while (~killer.die):
#generic data setup
sock.receive(data)
sock.shutdown(socket.SHUT_RDWR)
当中断被捕获时,它打印然后返回等待。
有没有办法在接收到信号时中断接收?
自 Python 3.5 起,中断的系统调用是 automatically resumed 在调用 (Python) 信号处理程序之后。如果您不想那样,请在您的处理程序中引发异常。
我正在开发一个从套接字接收数据的程序,当发送信号时,我希望能够中断接收。
我现在拥有的:
class Killer:
die = False
def __init__(self):
signal.signal(signal.SIGINT, self.terminate)
signal.signal(signal.SIGTERM, self.terminate)
def terminate(self, signum, frame):
print ("caught " + str(signum))
self.die = True;
sock = socket.socket()
# Generic socket setup
while (~killer.die):
#generic data setup
sock.receive(data)
sock.shutdown(socket.SHUT_RDWR)
当中断被捕获时,它打印然后返回等待。
有没有办法在接收到信号时中断接收?
自 Python 3.5 起,中断的系统调用是 automatically resumed 在调用 (Python) 信号处理程序之后。如果您不想那样,请在您的处理程序中引发异常。