二つのRasPiをUDPで繋いで通信するアプリを書いていた時
netcatで導通試験をする場合、送信と受信を毎回入れ替えて書いてました。
なんとなく不毛な気がして、調べたところ……ちゃんとありました。
実際のところ
guestとhostのraspberry Piがある想定で、hostは1111番でUDPパケットを待ち受けるが結果は何らか返したいとします。
仮に、ホストから"come"と返してみます。
サーバー(host)側
pi@host:~ $ echo "come" | nc -ul 1111
クライアント(guest)側
pi@guest:~ $ echo "22" | nc -u host'sIP 1111 come
TCPなら簡易WEB鯖としても使える
netcatで擬似的なWEB鯖をつくる - Bye Bye Moore
の記事で書いた通り、UDPでははなくTCPにはなりますが超軽量なWEB鯖を作ることも可能です。
netcatの"-e"オプションを有効化して常時待機できるUDPサーバを作るのも一考かもしれませが、
故郷の村を人質に取られてるとかでもない限りはUDPのコンセプトに反することはしないほうがいいでしょう、多分。
サーバー側
$ while true; do printf 'HTTP/1.1 200 OK\n\n<p>Hello</p>' | nc -l 8888; done
クライアント側
$ nc 192.168.100.137 8888 HTTP/1.1 200 OK <p>Hello</p>