В рамках обучения Node.js я решил использовать его на стороне сервера для клиента Android. Я развернул виртуальный бокс Ubuntu 11 с Node, NPM, Android SDK и Netbeans 7 - и пошел к нему.
Проблема: я не могу получить доступ к локальному хосту из эмулятора.
Вот что я пробовал:
1. Node "мир привет" script:
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. Браузеp > http://10.0.2.15:3000 → "Hello World"
5. Android-эмулятоp > приложение пытается получить доступ к http://10.0.2.15:3000 → " Подключение к http://10.0.2.15:3000 отказался"
6. Android-эмулятоp > Android-браузеp > http://10.0.2.15:3000 > "веб-страница недоступна"
Просто, чтобы проверить, я сделал эмулятор Android > Браузеp > любая другая страница - работает.
Таким образом, похоже, что эмулятор Android не может получить доступ к локальному IP-адресу VirtualBox.
У меня нет брандмауэров, работающих внутри VBox, и я не знаю настройки внутри эмулятора, который я могу изменить. Сначала я был моим приложением (хотя это манекен "получить url" небольшое приложение с android.permission.INTERNET
в его манифесте), но я не могу даже дотянуться до него из браузера.
Любое направление или идея, которую я пропустил?
Ваше время и помощь приветствуются!
Гай
Получил (думаю!) Благодаря комментарию cababbunga я начал искать "Emulator IP" и нашел этот вопрос с ответом на то, что локальная машина всегда может быть достигнута в 10.0.2.2. Я попробовал, и он работает как в браузере, так и в приложении!
Спасибо, что поставил меня на правильный путь!