1

MUPLEX - это скрипт Linux, использующий SOCAT, который может смешивать различные входные потоки реальных или эмулировать последовательные данные NMEA и обмениваться ими между несколькими приложениями, используя виртуальные последовательные порты и / или TCP. Теперь я отправляю данные на многие терминалы в режиме широковещания UDP; Я пробовал много комбинаций адрес / опции и ищу примеры в интернете, но безрезультатно.

бывший в простой форме:

# parameters port for standard NMEA
params_port="b4800,raw,clocal=1,cs8,cstopb=0,parenb=0,crtscts=0,echo=0,icanon"
# GPS port
dev_gps=/dev/ttyUSB0

# network is 192.168.127.0, GPS is on the 192.168.127.1 machine
# testing broadcast
# first enable ping
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
ping -c5 -b 192.168.127.255
# result OK

# send datas to 10110 UDP port
socat -d -v FILE:$dev_gps,$params_port UDP4-DATAGRAM:192.168.127.255:10110,broadcast

Никаких ошибок, но никаких данных со стороны клиента с:

netcat -u 192.168.127.1 10110

или же

socat -d UDP:192.168.127.1:10110 -

Если у кого-то есть решение, он добро пожаловать!

Полный скрипт Muplex находится на:http://marinux.tuxfamily.org

1 ответ1

2

Я помню, как однажды у меня была похожая проблема, и решением было обратиться к "многоадресному" синтаксису, а именно:socat -d -v FILE:$dev_gps,$params_port UDP4-RECVFROM:10110,ip-add-membership=224.1.0.1:192.168.127.10,fork

Конец получения, socat UDP4-DATAGRAM:224.1.0.1:10110,range=192.168.127.0/24 -

Я думаю, что x.x.x.255 штуковина была тихо положена на покой, но мне придется проверить это, чтобы убедиться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .