Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как правильно закрывать сокет? Linux / 4 сообщений из 4, страница 1 из 1
22.02.2007, 18:57
    #34351136
Sandro_K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно закрывать сокет? Linux
Закрываю сокет функцией close(sock),
если потом снова его открываю то bind выдает ошибку "addres is allready in use"
в инете нашел что перед close(sock) вызывать функцию shutdown(sock, SHUT_RDWR),
но это почему-то не помогает, результат такой-же.

Подскажите пожалуйста, как правильно закрыть сокет, чтобы при повторном открытии bind не приводил к ошибке
...
Рейтинг: 0 / 0
22.02.2007, 19:58
    #34351248
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно закрывать сокет? Linux
Дай сокету отдохнуть....
man ip A TCP local socket address that has been bound is unavailable for some
time after closing, unless the SO_REUSEADDR flag has been set. Care
should be taken when using this flag as it makes TCP less reliable.
...
Рейтинг: 0 / 0
23.02.2007, 10:43
    #34351673
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно закрывать сокет? Linux
Sandro_KЗакрываю сокет функцией close(sock),
если потом снова его открываю то bind выдает ошибку "addres is allready in use"
в инете нашел что перед close(sock) вызывать функцию shutdown(sock, SHUT_RDWR),
но это почему-то не помогает, результат такой-же.

Подскажите пожалуйста, как правильно закрыть сокет, чтобы при повторном открытии bind не приводил к ошибке

Самый простой и действенный способ:

Запиши и прочитай 0 байт из( в) сокет перед закрытием.

Или смотри на keepalive параметры, что бы установить время необходимое для отдыха.
...
Рейтинг: 0 / 0
23.02.2007, 13:12
    #34351871
Lexogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно закрывать сокет? Linux
Нужно использовать опцию SO_REUSEADDR (если это серверный сокет).
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как правильно закрывать сокет? Linux / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]