サーバアプリができたら、Androidのエミュレータで実行してみます。ネットワークアプリを開発する場合は、PCとエミュレータの間で通信が必要になるので、若干複雑になります。
PCとエミュレータ間のネットワークが動作していることを確認するためには、次のような手順を踏んで、きちんとサーバがポート待機をしているか確認してからクライアントからアクセスするようにします。また、ddmsコマンドも併用して、ログ出力を見ながら、動作確認をするのもいいでしょう。
6.コマンドプロンプトなどを開いて、使用可能デバイスの接続確認(Android SDKのadbコマンドが実行できるように、PATHを通しておくこと)
C:\> adb devices List of devices attached emulator-5554 device
7.エミュレータのネットワーク状態確認
C:\>adb shell netstat Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:5037 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN tcp 0 0 10.0.2.15:5555 10.0.2.2:56029 ESTABLISHED
8.PCの8080ポートをエミュレータの8080へポートフォワード
C:\>adb forward tcp:8080 tcp:8080
9.PCからTelnet(PuTTYやtelnetコマンド)で接続してデータ送受信
PuTTYを使うなら以下とします。
telnetコマンドを使うなら、以下とします。
telnet:127.0.0.1 8080
作成したプログラムは、単に入力した文字列をエコーするプログラムですから、接続ができたら、文字列を入力してみましょう。1行送信すると、それでsample.server.Echoのプログラムは終了します。
Hello ... 入力した文字列 Hello ... sample.server.Echoが返す文字列
プログラムを終了させるには、ホームボタンなどをクリックして、画面を切り替えます。基本的にサーバは待機状態になっているため、内部的にサーバへ接続して待機状態から復帰させる必要があります。そのうえで待機はせずに停止するようにしています。
出来上がったプログラムから.apkファイルを生成したら、Galaxy Tabへインストールして動かしてみましょう。Androidだと、自作アプリを気軽に自分の端末へインストールできるので、いろいろ楽しめます。
Galaxy TabのIPを確認したうえで、サーバアプリを起動したら、クライアントとなるPCからtelnetで接続してみましょう。エミュレータで動作させたのと同じように動くことが分かるはずです。
次ページでは、「i-jetty」で持ち運べるAndroid上Webサーバを構築してみます。
Copyright © ITmedia, Inc. All Rights Reserved.