INDEX(各項目ごとの目次)

[HOME]  [Processing関係]  [Arduino関係]  [マテリアル関係]  [秋葉原工作マップ]

2008年用ですが、部分的に内容を更新しています(2010/06/14)。
また、[建築農業工作ゼミ2009-2010]とも連動していますので、そちらにも幾つかサンプルがあります。
:

11/01/2008

Processing HTTPサーバ/Webページ表示

今回は、ProcessingのNetworkライブラリを利用して、ウェブブラウザで閲覧可能なウェブサイトのサーバとして機能させます。
サーバとして、IPアドレスならびにポート番号をあらかじめ確認/設定しておきます。

LAN内のローカルIPアドレスの場合:
コンピュータのIPアドレスを調べるには、MacOSXであれば、「システム環境設定>ネットワーク」を開き、AirMacを使用している場合は「AirMac」を選択、ケーブル接続している場合は「内蔵Ethernet」を選択し、「TCP/IP」タグを選択すると2段目あたりに「IPアドレス:10.0.1.2」などと表示されています。Windowsの場合は、コマンドプロンプトを開いて、「ipconfig」と打ってリターンすれば、幾つかの情報が現れ「IP Address....10.0.1.2」などと表示されるはずです。

グローバルIPアドレスを調べる場合:
以下のようなサイトで調べることができます。
http://dog.tele.jp/lookup.php
「あなたのパソコンのグローバルIPアドレスは」と書かれている場所に表示されます。

尚、ローカルネットワークの外からアクセス可能にするためには、ルータ上でのポートマッピング(ポート転送)などの設定が必要になります。設定については、「Processing-Arduino ネットワーク制御」の後半に説明があるので参照してください。

参照:YahooBBのモデムのポート転送設定方法


Processingのプログラム:

//ライブラリのインポート
import processing.net.*;
//サーバのインスタンス
Server server;
//カウンタ用変数
int val = 0;

void setup() {
size(200, 200);
//サーバの設定(ポート:12345)
server = new Server(this, 12345);
}

void draw() {
//クライアントからの受信確認
Client client = server.available();

//クライアントがいる場合
if (client!=null) {
//クライアントIPアドレス出力
println("Client IP Address : "+client.ip());
//クライアントからのデータがあるとき
if(client.available()>0){
//データ読み込み(HTTPリクエスト読み込み)
String clientData=client.readString();

//データを改行コードをもとに区切り、
//改行コードを取り除いてから配列に代入していく
String[] httpRequest=trim(split(clientData,'\n'));

//受信データの最初の内容が「GET / HTTP/1.1」の場合
if(httpRequest[0].equals("GET / HTTP/1.1")){
//以下の内容をクライアントへ返信する(HTTPレスポンス)
client.write("HTTP/1.1 200 OK\n");//接続成立
client.write("Content-Type: text/html\n");//HTML文書形式
client.write("\n");//空白行

//以下HTML文書表示内容
client.write("<title>KOUSAKU SERVER</title>");//タイトルバー表示

client.write("THIS IS KOUSAKU WEB SITE");//表示テキスト
client.write("<br/>");//改行

client.write("YOUR IP ADDRESS: "+client.ip());//IPアドレス表示
client.write("<br/>");//改行

//リンク画像表示(インターネット上のリンク先)
client.write("<img src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO1mZcFOR2gPG6zJRkUAlVlPExaRbGceh2D63Wy5LZFB4z5JMzMrfegC0TRcnvow_LQ50bd99lcItwIXfHTB_5AGNXxM2EJAQdimpgKFBtmpbVPNgV72UsfwKXhYOYNlvBSaehuIlYwmPj/s400/network.png\">");
client.write("<br/>");//改行

//リンクページへ移動する
client.write("<a href=\"http://kousaku-kousaku.blogspot.com\">GO TO: KOUSAKU BLOG PAGE<a>");
client.write("<br/>");//改行

//カウンタ機能
val++;
client.write("COUNTER: "+val);//カウンタ表示
client.write("\n\n");//空白行
}
client.stop();//クライアントとの接続を停止
}
}
}


上記のサーバ用のプログラムを起動し、クライアント用コンピュータ上でブラウザ(IE、Safari、FireFoxなど)で指定したIPアドレスとポート番号を入力してアクセスしてください。
例えば、「192.168.3.3」がサーバのIPアドレスであれば、「http://192.168.3.3:12345」をブラウザ上で入力して下さい。

HTTPリクエスト、HTTPレスポンスについては、「Arduino Ethernet Shield」を参照してください。



独自ドメインが使えて基本使用料0円レンタルサーバー



0 件のコメント:



[目次:Processing関係]  [HOMEへ戻る]  [目次:Arduino関係]