年末でJetty(絶対)にできる Android携帯サーバ活用小山博史のJavaを楽しむ(15)(3/4 ページ)

» 2010年12月27日 00時00分 公開
[小山博史,株式会社ガリレオ]

Androidサーバアプリの動作確認

Galaxy Tabのエミュレータで

 サーバアプリができたら、Androidのエミュレータで実行してみます。ネットワークアプリを開発する場合は、PCとエミュレータの間で通信が必要になるので、若干複雑になります。

 PCとエミュレータ間のネットワークが動作していることを確認するためには、次のような手順を踏んで、きちんとサーバがポート待機をしているか確認してからクライアントからアクセスするようにします。また、ddmsコマンドも併用して、ログ出力を見ながら、動作確認をするのもいいでしょう。

  1. Android SDK and AVD Managerを起動
  2. Galaxy Tabのエミュレータを起動
  3. エミュレータで画面のロックをはずす
  4. AndroidアプリケーションとしてGalaxyTabSimpleServerプログラム起動(ServerSocket.accept()で待機)
  5. Eclipseのコンソールで「Starting activity sample.server.GalaxyTabSimpleServer on device emulator-5554」といった表示が出るのを確認
図4 Eclipseのコンソール(画像をクリックすると、拡大します) 図4 Eclipseのコンソール(画像をクリックすると、拡大します)

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を使うなら以下とします。

図5 PuTTYの設定 図5 PuTTYの設定
  • [ホスト名]127.0.0.1
  • [ポート]8080
  • [接続タイプ]Raw
  • [終了時のウィンドウクローズ]しない

 telnetコマンドを使うなら、以下とします。

telnet:127.0.0.1 8080

 作成したプログラムは、単に入力した文字列をエコーするプログラムですから、接続ができたら、文字列を入力してみましょう。1行送信すると、それでsample.server.Echoのプログラムは終了します。

Hello ... 入力した文字列
Hello ... sample.server.Echoが返す文字列
図6 PuTTYのコンソール 図6 PuTTYのコンソール

 プログラムを終了させるには、ホームボタンなどをクリックして、画面を切り替えます。基本的にサーバは待機状態になっているため、内部的にサーバへ接続して待機状態から復帰させる必要があります。そのうえで待機はせずに停止するようにしています。

Galaxy Tabの実機で

 出来上がったプログラムから.apkファイルを生成したら、Galaxy Tabへインストールして動かしてみましょう。Androidだと、自作アプリを気軽に自分の端末へインストールできるので、いろいろ楽しめます。

 Galaxy TabのIPを確認したうえで、サーバアプリを起動したら、クライアントとなるPCからtelnetで接続してみましょう。エミュレータで動作させたのと同じように動くことが分かるはずです。

図7 GalaxyTabSimpleServerをGalaxy Tabへインストール 図7 GalaxyTabSimpleServerをGalaxy Tabへインストール
図8 GalaxyTabSimpleServerをGalaxy Tabで実行 図8 GalaxyTabSimpleServerをGalaxy Tabで実行

 次ページでは、「i-jetty」で持ち運べるAndroid上Webサーバを構築してみます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。