Отправка пакетов UDP в пункт назначения

На моем компьютере с Linux я получаю пакеты UDP с другого компьютера. Когда я получаю пакеты UDP, я получаю сообщение

"Listening on UDP port : 8999"

. Это запускается следующей частью команды кода, которая прослушивает этот конкретный порт.

GET_PORT((&(paraThread->destHost)), tmpPort);
fprintf(stderr, "Listening on UDP port : %d\n", ntohs(tmpPort));

Что мне нужно, так это то, что как только я получу каждый UDP-пакет, мне нужно будет отправить ответный UDP-пакет размером, скажем, 400 байтов на IP-адрес, с которого я получил UDP-пакет. Как я могу этого добиться?

0
19.05.2017, 19:31
1 ответ

Вы можете cat 400 байт на удаленный хост, когда вы получаете сообщение:

cat 400bytes.txt >/dev/udp/remotehost/8000

Как объяснено здесь. Конечно, доступны многие другие варианты.

Чтобы сгенерировать 400 случайных байтов для этого устройства, используйте dd :

dd if=/dev/urandom bs=1 count=400 of=/dev/udp/remotehost/8000
0
28.01.2020, 04:45

Теги

Похожие вопросы