2010-12-04 9 views
0

私はソケットを使って基本的なjava httpサーバーを書いています。それは簡単なRESTインターフェースを持ち、GET/POST要求に応答します。私はこのインターフェイスに接続する小さなアンドロイドアプリをやるために出発しました。私は私のPCのブラウザを使って私のサーバーに接続することができ、また私はVMWareのプレーヤー仮想マシンubuntuとXPから試しました。すべてうまくいく。私はエミュレータでテストすることを恐れていたので、アンドロイド携帯にアプリを展開しました。 Javaサーバーに接続できません。デバイスとPCの両方が同じネットワークに接続されています。私はポートフォワーディングなどのようにここに何かを逃していますか?これが問題なら、どのようにして仮想マシンから接続できたのでしょうか?Androidはローカルjava ServerSocketに接続していますか?

ご協力いただきありがとうございます。

よろしく、 Lalith

答えて

1

あなたはおそらく、インターネットのアクセス許可を設定するのを忘れていることはできますか? あなたのアンドロイドマニフェストでこれが必要です。

<uses-permission android:name="android.permission.INTERNET" /> 

/ステファン

+0

いいえ:)私は今までにこれらの問題を過ぎています。 – Lalith

1

あなたが同じネットワーク上で実行している別のPCからこのサーバーに接続することはできますか? (これは、サーバーと同じボックスで実行されている仮想マシンからの接続と同じではありません)

もしそうでなければ、PCにファイアウォールの問題がある可能性があります。

また、アンドロイドエミュレータでもテストする必要があります。エミュレータのドキュメントで見つけることができるホストループバックインターフェイスアドレスのエイリアスを使用してください。

+0

これを正しく試してみる必要があります。エミュレータのものをチェックアウトします。ありがとう。 – Lalith

+0

ああ、ちょうど私の研究室に来て、それを試してみました。私はいつも私のラップトップが実験室のWiFiに接続されているとき、私はそれがネットワーク内の他のどのようなPCと同じように振る舞うだろうと思っていました。もし私が自分のラップトップからサーバへのGET要求をラボマシン上で実行すると、それは動作します。でも、アンドロイドはソケットプログラミングを通してGET要求を送ることができます。 Apache HTTPClientを使用しようとしましたが、奇妙なIPaddressを受け付けません。私はそれを調べます。あなたの提案をありがとう。 – Lalith

関連する問題