История изменений
Исправление HighMan, (текущая версия) :
В данном случае сокет нужно явно биндить к интерфейсу.
Эврика!
У меня вчера уже появилась мысль насчет этого, но мысля была запоздалая и проклюнулась лишь в дороге.
Сегодня прибиндил:
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &i, sizeof(int));
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device) + 1);
Заработало! Остался лишь один момент: после перезагрузки компа интерфейсы находятся в DOWN. Попытки послать броадкаст через такой интерфейс, естественно, приводят к неудаче. Сначала нужно апнуть интерфейс.
Осталось разобраться как его програмно апнуть)
Исходная версия HighMan, :
В данном случае сокет нужно явно биндить к интерфейсу.
Эврика!
У меня вчера уже появилась мысль насчет этого, но мысля была запоздалая и проклюнулась лишь в дороге.
Сегодня прибиндил:
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &i, sizeof(int));
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, device, strlen(device) + 1);
Заработало! Остался лишь один момент: после перезагрузки компа интерфейсы находятся в DOWN. Попытки послать броадкаст через такой интерфейс, естественно, приводят к неудаче. Сначала нужно апнуть интерфейс.