Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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