Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

netcat/ncコマンドでUDPパケットを受ける/送る

極々少量のデータを送りたいだけ……なんて時はUDPを使ってみるのも手かなと思い調べてみました。
UDPは音声や、設定ファイルの内部むけブロードキャスト通信で使ったりします。
上手につくると、スプラトゥーンのような展開の激しいゲームでもP2Pめいたデータ持ち回りを実現できます。
kanai6274.blogspot.com

実際のところ

基本的に "-u"、UDPのオプションをつけます。

受信するとき

  • lはlistenの略です。
$ netcat -ul -p 5000

パイプも使えます。
たとえばバッファーをパイプで繋いでgrepすることも

$ netcat -ul -p 5000 | grep --line-buffered sender 

データの送り先を指定可能。

$ netcat -ul -p 5000 > /path/to/backupfile.txt

さらに、送り先にはtty端末も設定できるので……
この例のように、リモートのシリアル端末に直接命令を叩き込む事も可能です。
セキュリティちゃんとやらないとぶっ壊される危険もありますが……。

$ netcat -ul -p 5000 > /dev/ttyUSB0

送信するとき

送信先がTARGETIPでポートが5000のとき
逐次入力はこんな感じ。

$ netcat -u TARGETIP 5000

こちらもパイプで繋げます。

$ tar cf - /path/to/dir | netcat -u TARGETIP 5000