【Processing】UDPの送受信


初投稿です^^
ロボット業界でエンジニアをしているものです。
プログラムは勉強中なので、アドバイスをいただけると嬉しいです!

概要

・目的: Processingを用いた、UDPの送信と受信を簡易的に行えるようにする。
・内容: 送信ボタンを押すとUDP通信で受信のログに記載される。
・準備:
  1. Processingのダウンロード
  2. ライブラリのインポート
  3. コードを書く
  4. 実行

実践

1. Processingのダウンロード

  ダウンロードはココから

2. ライブラリのインポート

  1. Processingを起動し、「スケッチ/ ライブラリをインポート.../ ライブラリを追加...」の順で進んでください。

  2. “UDP”と“controlP5”をインストールしてください。
    「Status」に緑のチェックがついている「Name」を選択し、「Install」をクリック。

    ※“ControlP5”はProcessingにおけるGUIコントローラの一種です。


インストールを終わったら、完了です!

3. コードを書く

  
  では、コードを書いていきます。
  
  送信側のコードは下記のとおりです。

udpSend.pde
import hypermedia.net.*;
import controlP5.*;

UDP udp;
ControlP5 cp5;

final String IP = "localhost";
final int PORT = 1000;     //送信側のポート番号

String msg = "test_messege";   //UDPで送るコマンド

void setup() {
  size(200, 200);

  cp5 = new ControlP5(this);
  udp = new UDP( this, 2000 );

  ControlFont cf = new ControlFont(createFont("メイリオ",20));

  cp5.addButton("UDP_Msg")
    .setFont(cf)
    .setLabel("送信")
    .setPosition(50,50)
    .setSize(100,100);
}

void draw() {
  background(200);
}

void UDP_Msg(){
  udp.send(msg,IP,PORT);
}

  受信側のコードは下記のとおりです。

udpReceive.pde
import hypermedia.net.*;
import controlP5.*;

UDP udp;

final String IP = "localhost";
final int PORT = 2000;

void setup() {
  udp = new UDP(this, 1000);
  udp.listen( true );
}

void draw() {;}

void receive( byte[] data, String ip, int port ) {
  String message = new String( data );
  println( "receive: \""+message+"\" from "+ip+" on port "+port );
}

4. 実行

  実行結果すると下記の図のようになります。
  「送信」ボタンを押すとreceiveで受け取れてるのがわかりますね!

  以上、簡単にご紹介しました。
  ご質問や、アドバイス等があれば気軽にコメントしてください。

余談

  PCの壁紙が目に悪いと言われますが、この色が好きなのです!

  今年のカラー・オブ・ザ・イヤー2019に選ばれたのが『Living Coral(リビングコーラル)』です。
  
   ・PANTONE:16-1546 Living Coral
   ・カラーコード:#FF6F61
   ・RGB:R255, G111, B97
   ・CMTK:C0, M65, Y54, K0

  この色を今年は多く取り入れれば、良いことあるかもです!