アイコン イチから始める,
iモードJava
プログラミング
 [第21回]

サーバと通信を行ってみる

サーバとの通信

 携帯は非力なものだから,携帯ですべての処理を行うのが難しい局面もある。またゲームのように,ネットワーク通信を交えた方が,より楽しめるつくりにできる場合もある。したがってiアプリにとって,サーバとの通信は行わなくてはならない課題みたいなものといえる。

 といっても,サーバと通信を行うにはサーバ側にもプログラムがいる。iアプリだけで済む問題ではないので,テストやデバッグが難しい。

 iアプリは,以前にも述べたようにHTTPを擬似的に扱うことしかできない。したがってサーバと通信するといっても,使えるプロトコルはHTTPに限定されている。

 HTTPは主にサーバ→クライアント方向の通信を行うものだが,クライアント→サーバ方向の通信もサポートしている。Webページのアンケート集計などに使われているGETメソッドやPOSTメソッドがそれだ。

 CGIプログラムなどを作ったことがある人なら,よく知っていると思うが,この2つのメソッドでサーバに対して文字列データをポストすると,GETメソッドなら環境変数経由(QUERY_STRINGという環境変数にクライアントからの文字列が入る)で,POSTメソッドなら標準入力経由でCGIプログラムから読み出すことができる。したがって,iアプリとサーバの通信は,

  • iアプリがPOSTまたはGETメソッドを使ってサーバのCGIプログラムにデータをポスト
  • サーバサイドのCGIプログラムがデータを処理して携帯にレスポンスを返す
という流れになる。

 問題は,サーバサイドのプログラムに何を使うかだ。iアプリの仕様書には,サーバサイドプログラムの例としてJavaが取り上げられているが,WebサーバでJavaが使えない人は少なくないだろう。サーバサイドのプログラムで使える言語の定番といえば普通は,Perlやruby,あるいはC言語あたりだろうと思う。

 何を使っても同じといえば同じだが,まずはC言語でサーバに簡単なCGIを仕掛けて,iアプリの通信の実際を調べてみることにしよう。サーバサイドの仕掛けたプログラムのリストを1に示す。

リスト1を見るテキスト版

 リストを見ると分かるように,iアプリからはPOSTメソッドを使ってデータを送信する。そのデータをリスト1では標準入力から読み取り,未加工のまま文字列をiアプリにレスポンスとして返すだけのプログラムだ。

iアプリサイドのテストプログラム

 次にiアプリサイドのテストプログラムをリスト2に示しておこう。以前にサーバにアクセスしてデータ(画像)をダウンロードするプログラムを取り上げたが,その文字列版といったところだ。リクエストにPOSTメソッドを設定し,ユーザーが入力した文字列をサーバに送信するようになっている。

 なお,サーバとしては筆者がリスト1のプログラムを仕掛けたURLを指定した。

 リスト2のプログラムは,いつものようにhttp://gadget.mda.or.jp/i/net.htmlからダウンロードできるようにしてある。いろいろと文字列を打ち込んでサーバに対して送信してみてほしい。ネットワーク通信の実際が体験できるはずだ。次回は,この通信のテストを進めて,より実用的なサーバ−クライアント通信につなげていく予定だ。

リスト2を見るテキスト版

[米田聡,ITmedia]

関連記事
▼ 携帯コンテンツ市場を狙うISP──BIGLOBEが課金システム提供
▼ 非公式の携帯Javaに課金──ニフティが課金システムを提供
▼ 携帯向けJava,3社の違いは?
▼ 一般向け「iアプリ」市場は立ち上がるのか?
▼ iモード対応Javaを作るのに必要なものは?──NTTドコモ,仕様をついに公開


連載バックナンバー

▼ 付録 iモードJava開発関連リンク集

▼ 第1回 プログラム作成への準備

▼ 第2回 iアプリ製作の流れ

▼ 第3回 ファーストiアプリケーション

▼ 第4回 i-JADEを使おう

▼ 第5回 preverifyの環境作り

▼ 第6回 iアプリでミニゲーム〜グラフィックの取り扱い

▼ 第7回 読者からの質問コーナー

▼ 第8回 キーボードに合わせてグラフィックを動かす

▼ 第9回 クラスって何だろう?

▼ 番外編 ドコモ,公式iアプリ作成ツールを公開

▼ 第10回 NTTドコモの開発ツールを使ってみよう

▼ 第11回 サウンドを使ってみる

▼ 第12回 読者からの質問コーナー〜2

▼ 第13回 スクラッチパッドへの書き込み

▼ 第14回 ネットからデータをダウンロードする

▼ 第15回 アニメーションGIFを使ってみる

▼ 番外編2 iアプリのセキュリティは破られていない

▼ 第16回 もぐら叩きを作る〜1

▼ 第17回 モグラクラスの動作検証

▼ 第18回 読者からの質問コーナー〜3

▼ 第19回 サウンドを鳴らす

▼ 第20回 iアプリの割り込み〜再開処理を実装する

▼ 第21回 サーバと通信を行ってみる

▼ 第22回 iアプリプログラマのためのezplus入門

▼ 第23回 J-フォンのJava仕様

▼ 第24回 iアプリの達人になるには?

Copyright © ITmedia, Inc. All Rights Reserved.



モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!