gethostbyname завершается с ошибкой 111 (ECONNREFUSED) - PullRequest
1 голос
/ 11 марта 2011

Устройство имеет сетевое подключение (WiFi и 3G).

Вызов gethostbyname () возвращает значение NULL с ошибкой 111 (ECONNREFUSED).

Этот же вызов отлично работает на OSX и Windows.

В чем может быть проблема?

Best

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Вы должны добавить разрешение на использование Интернета в вашем AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>
0 голосов
/ 11 марта 2011

ECONNREFUSED предполагает, что распознаватель DNS на вашем устройстве может пытался переключиться на TCP / IP (вместо UDP), поскольку ответ был слишком длинным, чтобы поместиться в обычный пакет ответа UDP.

Если настроенные DNS-серверы не поддерживают входящие DNS-запросы через TCP, вы получите эту ошибку.

Клиентские приложения обычно не могут получить ECONNREFUSED из сокета UDP, потому что они не сохраняют состояние.

0 голосов
/ 11 марта 2011

Скорее всего, проблема связана с неправильной настройкой DNS-сервера на вашем устройстве.Не забудьте проверить это.Скорее всего, это проблема вашей локальной сети WiFi - возможно, там нет локального DNS-сервера.

Возможно, вы также можете попробовать отключить WiFi, поскольку разрешение DNS должно автоматически работать в вашей мобильной сети.

...