サーバと通信を行ってみるサーバとの通信携帯は非力なものだから,携帯ですべての処理を行うのが難しい局面もある。またゲームのように,ネットワーク通信を交えた方が,より楽しめるつくりにできる場合もある。したがってiアプリにとって,サーバとの通信は行わなくてはならない課題みたいなものといえる。 といっても,サーバと通信を行うにはサーバ側にもプログラムがいる。iアプリだけで済む問題ではないので,テストやデバッグが難しい。 iアプリは,以前にも述べたようにHTTPを擬似的に扱うことしかできない。したがってサーバと通信するといっても,使えるプロトコルはHTTPに限定されている。 HTTPは主にサーバ→クライアント方向の通信を行うものだが,クライアント→サーバ方向の通信もサポートしている。Webページのアンケート集計などに使われているGETメソッドやPOSTメソッドがそれだ。 CGIプログラムなどを作ったことがある人なら,よく知っていると思うが,この2つのメソッドでサーバに対して文字列データをポストすると,GETメソッドなら環境変数経由(QUERY_STRINGという環境変数にクライアントからの文字列が入る)で,POSTメソッドなら標準入力経由でCGIプログラムから読み出すことができる。したがって,iアプリとサーバの通信は,
問題は,サーバサイドのプログラムに何を使うかだ。iアプリの仕様書には,サーバサイドプログラムの例としてJavaが取り上げられているが,WebサーバでJavaが使えない人は少なくないだろう。サーバサイドのプログラムで使える言語の定番といえば普通は,Perlやruby,あるいはC言語あたりだろうと思う。 何を使っても同じといえば同じだが,まずはC言語でサーバに簡単なCGIを仕掛けて,iアプリの通信の実際を調べてみることにしよう。サーバサイドの仕掛けたプログラムのリストを1に示す。 リストを見ると分かるように,iアプリからはPOSTメソッドを使ってデータを送信する。そのデータをリスト1では標準入力から読み取り,未加工のまま文字列をiアプリにレスポンスとして返すだけのプログラムだ。 iアプリサイドのテストプログラム次にiアプリサイドのテストプログラムをリスト2に示しておこう。以前にサーバにアクセスしてデータ(画像)をダウンロードするプログラムを取り上げたが,その文字列版といったところだ。リクエストにPOSTメソッドを設定し,ユーザーが入力した文字列をサーバに送信するようになっている。 なお,サーバとしては筆者がリスト1のプログラムを仕掛けたURLを指定した。 リスト2のプログラムは,いつものようにhttp://gadget.mda.or.jp/i/net.htmlからダウンロードできるようにしてある。いろいろと文字列を打ち込んでサーバに対して送信してみてほしい。ネットワーク通信の実際が体験できるはずだ。次回は,この通信のテストを進めて,より実用的なサーバ−クライアント通信につなげていく予定だ。 [米田聡,ITmedia] 関連記事 連載バックナンバー Copyright © ITmedia, Inc. All Rights Reserved. モバイルショップ
最新スペック搭載ゲームパソコン
最新CPU搭載パソコンはドスパラで!!
FEED BACK |