关于信号:如何在python中捕获CTRL + C并在main函数中执行条件?

How can I capture CTRL+C and execute a condition inside my main function in python?

本问题已经有最佳答案,请猛点这里访问。

我搜索了与此相关的答案,但没有遇到任何问题。 我正在为P2P网络编写套接字程序,我需要将其纳入一些信号处理。

如果我在运行程序时按CTRL + C,程序应该向另一个对等方发送"LEAVE"请求。

伪代码:

1
2
3
4
5
6
if conditionX
    dosomething(IP, port)
if conditionY
    dosomethingelse(IP, port)
if SIGINT detected
    sendleaverequest(peerip, port)

我如何在这里实现信号处理?


CTRL-C是操作系统的信号之一。 您可以使用编程语言处理信号,包括信号库或模块。

对于Python,您可以使用系统模块,如果您处理signal.SIGINT,则可以在按CTRL-C时执行自己的代码。

以前问题的用法示例:

访问:
如何在Python中捕获SIGINT?