2011-05-30 37 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地址:10.0.2.15'
3.終端>curl 10.0.2.15:3000 - > 「Hello World」 的
4.瀏覽器>http://10.0.2.15:3000 - > 「Hello World」 的
5. Android模擬器>應用程序試圖訪問http://10.0.2.15:3000 - > 「連接到http://10.0.2.15:3000拒絕」
6. Android模擬器> Android瀏覽器>http://10.0.2.15:3000>「網頁不可用」

只是爲了驗證,我做了Android模擬器>瀏覽器>任何其他頁面 - 工程。
所以它看起來像Android模擬器無法訪問本地VirtualBox IP。

我沒有在VBox內部運行的防火牆,我知道我可以更改模擬器內部的設置。起初,我認爲這是我的應用程序(雖然它是一個虛擬的「獲取網址」小應用程序,其清單中的android.permission.INTERNET),但我甚至無法通過瀏覽器訪問它。

我錯過了任何方向或想法?
感謝您的時間和協助!

蓋伊

+1

什麼IP地址分配給您的Android模擬器? IIRC默認情況下是相同的10.0.2.15。 – cababunga 2011-05-30 21:34:00

+0

您試圖將兩個網絡「黑客」組合在一起,尤其是因爲它們似乎給10.0.0.0子網提供了特殊含義。嘗試將virtualbox子網移動到另一個子網。還要考慮將本地端口轉發到virtualbox到您的服務器正在監聽的端口,例如通過從物理機器ssh'ing並讀取ssh端口轉發,然後從android虛擬設備的特殊別名爲主機PC的回送地址。 – 2011-05-30 21:37:54

+0

@cababunga - 我如何知道模擬器的IP?如果你是對的,我將如何能夠改變它? – 2011-05-30 22:14:34

回答

2

明白了(我想!) 由於cababbunga的評論,我開始搜索「仿真器IP」,發現this question的答案本地機器可以隨時10.0.2.2到達。 我試過了,它可以在瀏覽器和應用程序中使用!

感謝您讓我走上正軌!

相關問題