LINUX.ORG.RU

Отсутствует прием broadcast udp-пакетов

 , , , ,


0

0

Добрый день! Пишу ПО (c++, qt), работающее на «железке» под управлением Linux. Данная железяка работает в сети udp/ip. Проблема в следующем: настройка интерфейса на железке следующая: ifconfig eth2 10.1.1.1 netmask 255.0.0.0 broadcast 255.255.255.255 up При такой настройке железяка не принимает broadcast пакетов от других устройств в сети. Подскажите, в чем может быть проблема, куда копать, что читать.

Перемещено shell-script из admin

Я, конечно, сейчас могу полнейшую хрень спороть, но:

broadcast 255.255.255.255
10.1.1.1 netmask 255.0.0.0

broadcast 10.255.255.255

XMs ★★★★★
()
Ответ на: комментарий от jcrash2k

Причем в настройках было broadcast 10.255.255.255, а устройства рассылают по широкому адресу 255.255.255.255. Я в сетях не силен абсолютно. Поэтому указал в настройках broadcast 255.255.255.255, но проблему это не решило

jcrash2k
() автор топика
Ответ на: комментарий от jcrash2k

А броадкаст у них какой? И есть ли возможность его сменить? Чтобы всё работало, у всех устройств должны быть вот такие настройки:

xms@XMs-develop ~ $ ipcalc 10.0.0.0/8
Address:   10.0.0.0             00001010. 00000000.00000000.00000000
Netmask:   255.0.0.0 = 8        11111111. 00000000.00000000.00000000
Wildcard:  0.255.255.255        00000000. 11111111.11111111.11111111
=>
Network:   10.0.0.0/8           00001010. 00000000.00000000.00000000
HostMin:   10.0.0.1             00001010. 00000000.00000000.00000001
HostMax:   10.255.255.254       00001010. 11111111.11111111.11111110
Broadcast: 10.255.255.255       00001010. 11111111.11111111.11111111
Hosts/Net: 16777214              Class A, Private Internet

xms@XMs-develop ~ $ 

XMs ★★★★★
()
Ответ на: комментарий от Kroz

Wireshark глядел, пакеты долетают. За ссылку спасибо :) Я так понял, что дело именно в маске для broadcast пакетов, потому что, запустив ПО под windows, увидел, что проблемы нет - все работает

jcrash2k
() автор топика
Ответ на: комментарий от jcrash2k

да не трогай ты сеть, тебе ж сказали, сделай так

dwRet = 1;
setsockopt(s, SOL_SOCKET, SO_BROADCAST, (const char *)&dwRet, 4);
luntik2012
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.