2013-07-31 2 views
0

Я добрался до сокетов, так голый со мной. У меня есть программа (Python), что в какой-то момент используетКак закрыть сокеты, оставленные открытой программой?

zmq.Context.socket(zmq.REP) 

и

zmq.Context.socket(zmq.PAIR) 

розетки, но проблема в том, что, когда программа будет убит сокеты еще можно найти с помощью:

'ps aux | grep zmq' 

команда. Итак, что я могу сделать, чтобы они исчезли после того, как программа была убита?

ответ

0

Вы можете использовать SO_REUSEADDR работать вокруг этой проблемы

SO_REUSEADDR Указывает, что правила, используемые при проверке адреса , поставляемые в безвыходном (2) вызов должен допускающие повторное использование локальных адресов. Для сокетов AF_INET это означает, что сокет может связываться, за исключением случаев, когда является активным гнездом для прослушивания, связанным с адресом. Когда гнездо listen- ing привязано к INADDR_ANY с определенным портом, то невозможно привязать к этому порту для любого локального адреса. Аргумент - это целочисленный булевский флаг.

Это должно AnSer большинство вопросов http://hea-www.harvard.edu/~fine/Tech/addrinuse.html