2009-04-28 1 views
2

Я хочу, чтобы иметь возможность повторно использовать некоторые порты, и именно поэтому я использую setsockopt на моих розетках, с помощью следующего кода:Является ли windows setsockopt сломанным?

sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 

Однако, это на самом деле не работает. Я тоже не получаю ошибку привязки, но серверный сокет просто не отвечает (кажется, он запускается, но если я пытаюсь подключиться к нему, он не входит в цикл выбора). Такое поведение появляется, если сценарий заканчивается неожиданно, и если я изменю порт, который прослушивает сервер, все работает снова. Можете ли вы дать несколько советов?

EDIT: Я переименовал гнездо в носок. Это было просто имя, которое я выбрал для этого фрагмента кода.

+0

Вы должны позвонить setsockopt в свой сокет, который вам кажется не нужен. вы уверены, что не скрываете встроенный? – SilentGhost

+0

Это просто имя, которое я выбрал для этого фрагмента. – Geo

+0

Этот вопрос, вероятно, должен быть переименован в «Является ли SO_REUSEADDR оконным словом?» – paleozogt

ответ

1

setsockopt - метод объекта сокета. модуль socket не имеет атрибута setsockopt.

+0

Я назвал свой объект сокета в этом примере сокета. В моем коде это имя "listen_sock" – Geo