Я хочу сгенерировать пакет UDP для тестирования программы, что эквивалентно использованию telnet для проверки порта TCP (Может ли telnet генерировать пакет UDP?)
Как я могу это сделать?
Я хочу сгенерировать пакет UDP для тестирования программы, что эквивалентно использованию telnet для проверки порта TCP (Может ли telnet генерировать пакет UDP?)
Как я могу это сделать?
Одним словом: Netcat
Netcat - инструмент для такого рода вещей.
Вы можете поменять любой порт, который вы выберете, с помощью пакетов UDP, например:
nc -u host.example.com 53 < /dev/random
(53 номер вашего порта)
Или вы можете отправить фактический файл или сказать ему, чтобы он связывал этот порт и слушал как службу, или как вам угодно.
Если вы хотите просто отправить один пакет UDP с некоторыми указанными данными, в отличие от ответа Satanicpuppy, который непрерывно отправляет случайные данные, вы можете сделать:
echo "foo" | nc -w1 -u 111.22.333.4 20000
Это хорошо, если вы пытаетесь работать с большими пакетами. netcat использует 1024 байта в режиме UDP.
nping --udp -p 2090 111.22.333.4 --data-length 1550
Режим UDP, порт 2090 по адресу, длина пакета 1550 байт.
Это из пакета nmap или иногда отдельно упаковывается как nping.
Дополнительная информация на https://nmap.org/book/nping-man-general-operation.html
Если вы используете Bash, вы можете использовать его виртуальную файловую систему /dev/udp
, например:
echo -n "hello" >/dev/udp/localhost/8000
Бесстыдно повторно использовал этот ответ на вопрос «Как отправить только один пакет UDP с Netcat?"
Вы всегда можете использовать программы терминала UDP. Большинство из них также могут отправлять / получать TCP. Например, у скриптового терминала Docklight есть такая возможность. И затем вы отправляете данные так же, как отправляете их на последовательный порт.