最初のプログラムの説明
ここで改めて最初のサーバープログラムとクライアントプログラムを読んで中身を理解していきましょう。
サーバープログラム
以下はサーバープログラムの再掲です。
import processing.net.*;
Server myServer;
int val = 0;
void setup() {
size(200, 200);
// Starts a myServer on port 5204
myServer = new Server(this, 5204);
}
void draw() {
val = (val + 1) % 255;
background(val);
myServer.write(val);
}
グローバル変数にServer型の myServer
変数を宣言し、setup
関数内でServerインスタンスを作成しています。
draw
関数では、グローバル変数 val
の値を1増やし(256以上になったら0に戻す)、write
メソッドによって現在の val
の値を、接続された全てのクライアントに対して送信しています。
クライアントプログラム
以下はクライアントプログラムの再掲です。
import processing.net.*;
Client myClient;
int dataIn;
void setup() {
size(200, 200);
// Connect to the local machine at port 5204.
// This example will not run if you haven't
// previously started a server on this port.
myClient = new Client(this, "127.0.0.1", 5204);
}
void draw() {
if (myClient.available() > 0) {
dataIn = myClient.read();
}
background(dataIn);
}
グローバル変数にClient型の myClient
変数を宣言し、 setup
関数内でサーバーへのコネクションを確立しています。
draw
関数では、はじめに available
メソッドによってまだ読み込んでいない受信データがあるか確認します。
まだ読み込んでいない受信データがあれば、 read
メソッドによって先頭の1バイトを取り出し、グローバル変数 dataIn
に代入しています。