How to generate UDP packet
I want to generate UDP packet to test a program, something equivalent to using telnet to test TCP port (Can telnet generate UDP packet?)
How can I do this?
Solution 1:
One word: Netcat
Netcat is the go-to tool for this sort of thing.
You can thrash whatever port you choose with UDP packets with something like:
nc -u host.example.com 53 < /dev/random
(53 is your port number)
Or you can send an actual file, or tell it to bind that port and listen as a service, or whatever you like.
Solution 2:
If you want to merely send one UDP packet with some specified data, as opposed to Satanicpuppy's answer which continuously sends random data, you can do:
echo "foo" | nc -w1 -u 111.22.333.4 20000
Solution 3:
This one is good if you are trying to work with large packets. netcat uses 1024 bytes in UDP mode.
nping --udp -p 2090 111.22.333.4 --data-length 1550
UDP mode, to port 2090 at address, with a packet length of 1550 bytes.
This is from the nmap package, or is sometimes packaged as nping separately.
Further info is at https://nmap.org/book/nping-man-general-operation.html
Solution 4:
If you're using Bash, you can use its /dev/udp
virtual filesystem, like this:
echo -n "hello" >/dev/udp/localhost/8000
Shamelessly re-used from this answer to "How to send only one UDP packet with netcat?"