Форум программистов, компьютерный форум CyberForum.ru

C++ и сети

Войти
Регистрация
Восстановить пароль
 
Quaentor
0 / 0 / 0
Регистрация: 04.07.2017
Сообщений: 3
#1

Для чего SO_REUSEADDR в setsockopt? - C++

13.07.2017, 22:32. Просмотров 202. Ответов 5
Метки нет (Все метки)

я так понял, что это нужно, если вызываешь bind для определенного сетевого интерфейса(типа 192.168.1.5). Вот я выставил определенный, но опцию SO_REUSEADDR не выставлял.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    sockaddr_in local{};
    local.sin_addr.s_addr = inet_addr("192.168.1.35");
    local.sin_family = PF_INET;
    local.sin_port = port;
 
    sock = socket(PF_INET, SOCK_STREAM, 0);
    if(sock == INVALID_SOCKET){
        handle_error("socket");
        return false;
    }
 
    if(bind(sock, (sockaddr*)&local, sizeof(local)) != 0){
        handle_error("bind");
        return false;
    }
Ошибку не выдает. Почему?


как всегда... Перечитал: не заметил, что ошибка будет, если уже этот процесс привязывал тот же конкретный адрес себе
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2017, 22:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Для чего SO_REUSEADDR в setsockopt? (C++):

Работа с UDP, таймаут для setsockopt - C++
Доброго времни суток. Пользуюсь Windows 8.1, Visual Studio 2013, C++. Пытаюсь использовать setsockopt для установки таймаута у recvfrom, в...

Для чего используется DLL? - C++
исходники кода написанного на C++ хранятся в DLL верно?? Для чего используется DLL?? Добавлено через 2 минуты вернее не исходники а...

.elf и для чего они нужны - C++
Собственно сабж Почитал Вики, как-то для новичка не очень много прояснилось И объясните еще пожалуйста разницу с ехе

Что такое compile-time алгоритмы и для чего они нужны? - C++
А есть от них хоть какая-то практическая польза? По-моему нет

Знания чего необходимы для создания читов? Есть ли литература на эту тему? - C++
Есть желание создать чит для одной игрушки, в которую раньше яро задротил. Сейчас по чуть-чуть изучаю C++ и параллельно реверсинг, но у...

Для чего нужены параметры disable-rpath и disable-symvers при сборке? - C++
Подскажи пожалуйста, для чего нужен параметр disable-rpath и disable-symvers при сборке? Сообщения вынесены из темы Сборки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
plaxa
Заблокирован
15.07.2017, 14:39 #2
Эта штуковина используется там где надо - обычному программисту не надо.
Где надо? Например, захотел я по-сканить, но, нужно прикинуться определенным,
не раздражающим админа удаленного сервака, правдоподобным запросом, для этого
нужно чтобы исходящий номер порта соответствовал, поэтому необходимо биндить
строго, но вот незадача - там уже что-то используется, вот и наступает момент ре-юза.
vxg
Модератор
3157 / 1959 / 218
Регистрация: 13.01.2012
Сообщений: 7,496
15.07.2017, 14:47 #3
plaxa, вот незадача - мысли у вас об одном. Все может оказаться совсем мирно - приложение упало, система не освободила порт, приложение рестартовало и хочет на свой порт - так вот без этого параметра его не пустит система до тех пор пока не протухнет сокет занятый до падения
Quaentor
0 / 0 / 0
Регистрация: 04.07.2017
Сообщений: 3
15.07.2017, 20:17  [ТС] #4
plaxa, vxg, а при чем здесь порт? Эта опция же используется только, если в данном процессе есть сокет, который привязан к определенному сетевому интерфейсу(адресу).
vxg
Модератор
3157 / 1959 / 218
Регистрация: 13.01.2012
Сообщений: 7,496
15.07.2017, 21:28 #5
Quaentor, я вам не вру
plaxa
Заблокирован
15.07.2017, 21:52 #6
Quaentor, если вам ничего не говорит научное определение - вашего вопроса,
вот оно

Опция сокета SO_REUSEADDR включается, чтобы связать
один и тот же номер порта с несколькими сокетами,
используя разные локальные IP-адреса

зачем задаете вопрос, пояснения которого - для вас, лишь усугубит ситуацию.
Мир программирования быстр для того кто хоть немного стремится к чтению, просвещайтесь литературой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2017, 21:52
Привет! Вот еще темы с ответами:

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

Ошибка при работе вызова setsockopt - Assembler
При создании udp socketa для multicast необходим вызов функции setsockopt(sockfd, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, (char *)&group_src,...

Для чего нужен Seed() и для чего его override? - C#
Привет, ребята. Прочитал много разных статей про Seed(). И так и не могу понять зачем он нужен на практике. Вот выдержка одной из...

Для чего указывать ширину и высоту для html body? - HTML, CSS
Что означает, если указать в CSS свойство: html, body { width: 100%; height: 100%; } Приведите пожалуйста наглядный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.07.2017, 21:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru