デバイスにネットワーク接続(WiFiおよび3G)があります。gethostbynameがエラー111(ECONNREFUSED)で失敗する
gethostbyname()を呼び出すと、errno 111(ECONNREFUSED)のNULLが返されます。
同じ呼び出しがosxとwindowsで正常に動作します。
何が問題なのですか?
ベスト、
デバイスにネットワーク接続(WiFiおよび3G)があります。gethostbynameがエラー111(ECONNREFUSED)で失敗する
gethostbyname()を呼び出すと、errno 111(ECONNREFUSED)のNULLが返されます。
同じ呼び出しがosxとwindowsで正常に動作します。
何が問題なのですか?
ベスト、
あなたののAndroidManifest.xmlでインターネットを使用する許可を追加する必要があります - また、インターネットのアクセス権を追加することで解決されたアクセス許可が拒否されました、
<uses-permission android:name="android.permission.INTERNET"/>
問題が最も可能性が高いあなたのデバイス上で設定していないか、間違って設定されたDNSサーバです。それを確認してください。これはおそらくあなたのローカルWiFiネットワークに問題があります - おそらくローカルDNSサーバーはありません。
モバイルネットワークでDNS解決が自動的に機能するため、WiFiを無効にすることもできます。
ECONNREFUSED
は、デバイス上のDNSリゾルバがの応答が長すぎて、通常のUDP応答パケットに収まらないためにUDPの代わりにTCP/IPにフェイルオーバーしようとしていることを示しています。
設定されたDNSサーバーがTCP経由の受信DNS要求をサポートしていない場合、そのエラーが発生します。
クライアントアプリケーションは、通常、ステートレスなので、UDPソケットからECONNREFUSED
を得ることはできません。
もerrnoを13(EACCES)でこれを見ました。 – WilliamKF