2011-05-30 20 views
1

Node.jsの学習の一環として、Androidクライアント用のサーバー側として使用することにしました。 私はNode、NPM、Android SDK、Netbeans 7を搭載したUbuntu 11 VirtualBoxを配備して行きました。AndroidエミュレータからローカルVirtualBox上のNode.jsにアクセス

問題:エミュレータからローカルホストにアクセスできません。
1.ノードの "Hello World" スクリプト:

var app = require('express').createServer(); 

app.get('/', function(req, res){ 
    res.send('Hello World\r\n'); 
}); 

app.listen(3000); 

2.ターミナルを>ifconfig 'のINET addrの:10.0.2.15' を返さ

は、ここに私が試したものだ
3.ターミナル>curl 10.0.2.15:3000 - > "Hello World" の
4.ブラウザ>http://10.0.2.15:3000からhttp://10.0.2.15:3000アクセスしようとする> "Hello World" の
5. Androidのエミュレータ>アプリ - >
を "http://10.0.2.15:3000への接続が拒否されました" 0 6. Androidエミュレータ> Androidブラウザ>http://10.0.2.15:3000> "ウェブページが利用できません"

私はAndroidエミュレータ>ブラウザ>他のページ - 作品を確認しました。
AndroidエミュレータがローカルのVirtualBox IPにアクセスできないようです。

私はVBox内でファイアウォールを実行していません。私は変更可能なエミュレータ内に設定がないことを知っています。最初は私のアプリでした(ダミーの "get url"小さなアプリケーションでandroid.permission.INTERNETをマニフェストにしています)が、ブラウザからも届きません。

私が逃した方向やアイデアは?
あなたの時間と援助は高く評価されています!ガイ

+1

あなたのAndroidエミュレータにはどのようなIPアドレスが割り当てられていますか? IIRCはデフォルトで10.0.2.15と同じです。 – cababunga

+0

2つのネットワーキング "ハッキング"を組み合わせようとしています。これらのハッキングは、特に両方が10.0.0.0サブネットに特別な意味を持つように見えます。仮想ボックスサブネットを別のものに移動してみてください。また、ローカルマシンのポートをvirtualboxに、サーバがリッスンしているポートに転送することを検討してください。たとえば、物理マシンからsshを入力してsshポートの転送を読み込んだ後、特別な別名でアンドロイド仮想デバイスからそのポートに接続しますホスティングPCのループバックアドレス用。 –

+0

@cababunga - エミュレータのIPを知るにはどうすればよいですか?あなたが正しいなら、私はそれをどのように変更することができますか? –

答えて

2

は(と思う!)cababbungaさんのコメントに おかげで、私は「エミュレータIP」を探し始め、ローカルマシンは常に10.0.2.2に到達することができるという答えをthis questionを見つけ、それを手に入れました。 私はそれを試して、ブラウザとアプリの両方で動作します!

私を正しい軌道に乗せてくれてありがとう!

関連する問題