LoginSignup
5
4

More than 5 years have passed since last update.

【Processing】UDPの送受信

Posted at

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

概要

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

実践

1. Processingのダウンロード

  ダウンロードはココから

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

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

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

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

ConIP5a.png
UDP.png

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

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で受け取れてるのがわかりますね!

名称未設定.png

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

余談

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

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

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

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4