2017-12-03 142 views
-1

我搜索了與此相關的答案,但沒有遇到任何問題。我正在爲P2P網絡編寫套接字程序,因此我需要合併一些信號處理。如何捕獲CTRL + C並執行python中的主函數內的條件?

如果我在運行程序時按下CTRL + C,程序應向另一個對等方發送「LEAVE」請求。

僞代碼:

if conditionX 
    dosomething(IP, port) 
if conditionY 
    dosomethingelse(IP, port) 
if SIGINT detected 
    sendleaverequest(peerip, port) 

我如何能實現信號處理嗎?

回答

1

CTRL-C是操作系統的信號之一。您可以使用包括信號庫或模塊在內的編程語言處理信號。

對於Python,您可以使用系統模塊,如果您處理signal.SIGINT,則可以在按CTRL-C時執行自己的代碼。從前面的問題

實例應用:

訪問: How do I capture SIGINT in Python?