我有一个程序(Python),在某些时候使用
zmq.Context.socket(zmq.REP)
和
zmq.Context.socket(zmq.PAIR)
套接字,但问题是,当程序被杀死时,套接字仍然可以使用:
找到 'ps aux | grep zmq'
命令。那么在程序被杀之后我该怎样做才能让它们消失呢?
答案 0 :(得分:1)
根据;
https://superuser.com/questions/127863/manually-closing-a-port-from-commandline
只有应用程序可以关闭它正在使用的套接字,在应用程序进程被终止后,套接字应该在几分钟内自动释放。你耐心吗?
答案 1 :(得分:0)
您可以使用SO_REUSEADDR解决该问题
SO_REUSEADDR表示验证地址时使用的规则 在bind(2)调用中提供的应该允许重用本地地址。对于 AF_INET套接字这意味着套接字可以绑定,除非在那里 是一个绑定到该地址的活动侦听套接字。当听 - 套接字绑定到INADDR_ANY与特定端口,然后它不是 可以绑定到此端口以获取任何本地地址。争论是一个 整数布尔标志。
这应该是你的大部分问题http://hea-www.harvard.edu/~fine/Tech/addrinuse.html