Android "localhost" сокеты выходят из строя, когда нет подключения к данным? - PullRequest
4 голосов
/ 13 июля 2011

Я разрабатываю приложение для Android, которое потребует использования веб-сервера на локальном устройстве.Я пробовал несколько разных серверов для этой цели.В настоящее время я не написал никакого кода и не запустил что-либо в эмуляторе, просто играл с серверами на моем реальном телефоне, и я наблюдаю какое-то странное поведение.

Всякий раз, когда я пытаюсь подключиться к локальномувеб-сервер, и у меня отключен WIFI, HTTP-запрос не выполняется.Если я включу WIFI, это удастся.В зависимости от того, какой адрес я использую, я получаю разные результаты: используя localhost или 127.0.0.1, я получаю отказ в соединении, когда WIFI выключен;используя текущий адрес 10.XYZ, я получаю тайм-аут.Оба адреса работают, когда включен WIFI.

Я пробовал это с xWS, PAW и i-Jetty: поведение соответствует.WIFI включен, я могу подключиться к локальному веб-серверу;WIFI выключен, я не могу.Я использую стандартный интернет-браузер на Android 2.3.3 на Samsung Galaxy S (GT-I9000).

Кто-нибудь знает, почему это так?Это простой вопрос настройки где-то, что мне нужно изменить, или что происходит?

Cheers,

/ Uffe

Ответы [ 3 ]

1 голос
/ 13 июля 2011

Можно ли изменить сетевой интерфейс, к которому подключен веб-сервер?По умолчанию это, вероятно, что-то вроде eth0 или wlan0, если вы измените его на lo, это может сработать.

0 голосов
/ 15 июля 2011

Я сейчас протестировал свой собственный простой клиент и Opera - и это работает.

Так что на самом деле это проблема не со стеком IP, а с браузером Android по умолчанию или, возможно, снастройки применяются производителем (Samsung) или оператором связи (Telenor Sweden).В любом случае есть обходной путь: используйте Opera вместо этого.

Все еще не знаю, почему он не работает с браузером по умолчанию, но я отмечу этот вопрос как отвеченный.

0 голосов
/ 13 июля 2011

Вы спрашиваете, почему при отключении вашего Wi-Fi нет соединения с 10.0.0.2 (localhost вашего компьютера), а когда вы его включаете, возникает соединение?

Очень просто.Wi-Fi выключен - нет подключения к Интернету.Эмулятор устройства - это отдельная ОС внутри ОС вашего компьютера.При отключении WIFI нет маршрута к хосту (вашему компьютеру) - нет интернета

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...