0

我有一个程序(Python)在某些时候使用

    zmq.Context.socket(zmq.REP)

    zmq.Context.socket(zmq.PAIR) 

套接字,但问题是当程序被杀死时,仍然可以使用以下方法找到套接字:

    'ps aux | grep zmq'

命令。那么我该怎么做才能让它们在程序被杀死后消失呢?

4

2 回答 2

1

根据;

https://superuser.com/questions/127863/manually-closing-a-port-from-commandline

只有应用程序可以关闭它正在使用的套接字,在应用程序进程被终止后,套接字应该会在几分钟内自动释放。你有足够的耐心吗?

于 2013-07-31T18:36:18.440 回答
0

您可以使用 SO_REUSEADDR 解决该问题

SO_REUSEADDR 表示用于验证 bind(2) 调用中提供的地址的规则应该允许重用本地地址。对于 AF_INET 套接字,这意味着一个套接字可以绑定,除非有一个活动的侦听套接字绑定到该地址。当侦听套接字使用特定端口绑定到 INADDR_ANY 时,就不可能为任何本地地址绑定到该端口。参数是一个整数布尔标志。

这应该回答你的大部分问题http://hea-www.harvard.edu/~fine/Tech/addrinuse.html

于 2013-07-31T18:38:35.877 回答