В
Ещё раз. Какие реально бизнес-проекты работают, в которых участовали разработчики из этой группы? Просто ссылка на сайт, не более того. Не надо распинаться, чего-то там рассказывать, если не считаете нужным
Size: a a a
В
В
AG
В
AB
В
IG
V
AB
С
ML
AB
AB
ML
YP
LW
Есть макбук, у которого дефолтный маршрут по вайфаю, а сбоку воткнут ethernet по которому связь с джетсоном.
Есть комбинации опций, которые мы передаем в gen_udp:open:
* {bind_to_device,Iface} не работает под маком и возможно не имеет особого смысла под линуксом
* {raw, 1, 25, Iface} скорее всего это bind_to_device
* {broadcast,true} без неё нельзя послать пакет на 255.255.255.255
* {ifaddr,ServerIP} опция для того, чтобы прибиндиться на нужный айпишник
Дальше проверяем такие комбинации (все от рута):
* стоит только broadcast. Пакеты прилетают в наш процесс, но улетают они в вайфай
* стоит ifaddr. Пакеты больше не доходят до эрланговского процесса, хотя и прилетают в систему
* стоит bind_to_device: сокет не стартует с ошибкой einval
* стоит raw: такая же реакция, как и с broadcast
* broadcast, а для посылки открываем новый сокет с ifaddr, но с произвольным портом: джетсон не реагирует, хотя ему и прилетают пакеты
* жонглируем сокетами
В голову приходит страшный вывод и, что самое ужасное, он оказывается правильным. На каждый прилетевший пакет мы закрывает сокет листенер, чтобы освободить локальный UDP порт, потом открываем временный сокет для отправки одного сообщения с опцией ifaddr, потом закрываем его и открываем листенер заново.
Важно отметить, что опция ifaddr с биндингом к порту 67 работает только из под sudo. В макоси разрешили слушать адрес 0.0.0.0 для привилегированных портов, но оставили запрет для конкретных айпишников.
LW
ML
LW