UDPで受信したものを標準出力に表示するだけのは次の通り
socat udp-listen:12345,reuseaddr stdout
送信側はこう
echo "hello,world!" | socat stdin udp-sendto:192.168.0.11:12345
これを、パケット受信ごとにダンプしたりしたいときは次のように変える
socat udp-recvfrom:12345,reuseaddr,fork system:"hexdump -C >&2"
udp-listenはずっと待ち受け続けるけど、udp-recvfromは1パケットだけ受信して閉じる
forkを付ければまた受信をする
systemはプログラムをsysytem関数で起動する
execでも起動するけど、リダイレクトとか使えないので必要に応じて使い分ける
基本的に、起動したプログラムの標準出力は送信元に返送される
たとえばダンプして中身を見たいときは標準エラー出力に出すと良い