Что такое SocketOptionName. ReuseAddress, используемый для?

Я раньше думал то использование SocketOptionName.ReuseAddress, Я могу снова использовать порт, который находится в TIME_WAIT состояние. Но я пытался экспериментировать с ним, и кажется, что это не имеет никакого эффекта.

Если я проверяю использование сокетов netstat, и это показывает, что сокет находится в TIME_WAIT состояние и я сразу выполняем клиент снова, я получаю исключение:

Только одно использование каждого адреса сокета (адрес/порт протокола/сети) обычно разрешается 172.16.16.16:12345

Я ничего не могу сделать из него. Можете Вы уточнять что SocketOptionName. ReuseAddress хорош для?

7
задан Hemant 4 May 2010 в 09:04
поделиться

1 ответ

Почему вы в первую очередь привязываете свой клиентский порт? Вам, вероятно, не нужно, а если вы этого не сделаете, то гораздо лучше позволить ОС выбрать для вас временный порт, и тогда у вас вообще не будет этой проблемы.

Во-вторых, почему, по вашему мнению, рекомендуется повторно использовать сокет, это TIME_WAIT ; состояние существует по уважительной причине ...

Что касается того, почему это не работает для вас, взгляните на ссылку, которую я опубликовал в ответ на этот аналогичный вопрос: При привязке клиентского TCP-сокета к определенному локальный порт с Winsock, SO_REUSEADDR не имеет никакого эффекта

0
ответ дан 8 December 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: