我對套接字很陌生,對我很裸露。 我有一個程序(蟒蛇),在某些點使用如何關閉被死亡程序打開的套接字?
zmq.Context.socket(zmq.REP)
和
zmq.Context.socket(zmq.PAIR)
插座,但問題是,當程序被殺害插座仍然可以使用發現:
'ps aux | grep zmq'
命令。那麼在程序被殺之後我能做些什麼來讓它們消失?
我對套接字很陌生,對我很裸露。 我有一個程序(蟒蛇),在某些點使用如何關閉被死亡程序打開的套接字?
zmq.Context.socket(zmq.REP)
和
zmq.Context.socket(zmq.PAIR)
插座,但問題是,當程序被殺害插座仍然可以使用發現:
'ps aux | grep zmq'
命令。那麼在程序被殺之後我能做些什麼來讓它們消失?
根據;
https://superuser.com/questions/127863/manually-closing-a-port-from-commandline
只有一個應用程序可以關閉它正在使用的插座,應用程序進程後,插座應自動幾分鐘內釋放。你有耐心嗎?
您可以使用SO_REUSEADDR來解決這個問題
SO_REUSEADDR表明,在驗證了困境提供的地址 使用的規則(2)調用應允許本地地址的重用。對於 AF_INET套接字,這意味着套接字可以綁定,除非 是綁定到該地址的活動偵聽套接字。當listen- ing套接字被綁定到具有特定端口的INADDR_ANY時,它不是 可能綁定到任何本地地址的這個端口。參數是一個整數布爾標誌 。
這應該雁大多數問題的http://hea-www.harvard.edu/~fine/Tech/addrinuse.html