Доступ к Node.js в локальном VirtualBox из эмулятора Android - PullRequest
1 голос
/ 31 мая 2011

В рамках изучения Node.js я решил использовать его на стороне сервера для клиента Android. Я развернул Ubuntu 11 VirtualBox с Node, NPM, Android SDK и Netbeans 7 - и пошел к нему.

Проблема: я не могу получить доступ к своему локальному хосту из эмулятора.

Вот что я попробовал:
1. Сценарий узла "Привет, мир":

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

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

app.listen(3000);

2. Terminal> ifconfig возвращено 'inet addr: 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 не может получить доступ к локальному IP-адресу VirtualBox.

У меня нет брандмауэров, работающих внутри VBox, и я не знаю настроек внутри эмулятора, которые я могу изменить. Сначала я подумал, что это мое приложение (хотя это фиктивное небольшое приложение «get url» с android.permission.INTERNET в манифесте), но я даже не могу открыть его из браузера.

Какое направление или идею я пропустил?
Мы ценим ваше время и помощь!

Guy

1 Ответ

3 голосов
/ 31 мая 2011

Понял (я думаю!) Благодаря комментарию cababbunga, я начал искать «Эмулятор IP» и нашел этот вопрос с ответом, что локальная машина всегда может быть достигнута в 10.0.2.2. Я попробовал, и он работает как в браузере, так и в приложении!

Спасибо, что поставили меня на правильный путь!

...