設備確實具有網絡連接(WiFi和3G)。gethostbyname失敗,出現錯誤111(ECONNREFUSED)
調用gethostbyname()返回NULL與errno 111(ECONNREFUSED)。
相同的調用在osx和windows上工作正常。
可能是什麼問題?
最佳,
設備確實具有網絡連接(WiFi和3G)。gethostbyname失敗,出現錯誤111(ECONNREFUSED)
調用gethostbyname()返回NULL與errno 111(ECONNREFUSED)。
相同的調用在osx和windows上工作正常。
可能是什麼問題?
最佳,
您應該添加在你的AndroidManifest.xml中使用Internet的權限:
<uses-permission android:name="android.permission.INTERNET"/>
的問題是最有可能是沒有或錯誤配置的DNS服務器您的設備上設置。一定要檢查一下。這可能是本地WiFi網絡的問題 - 可能沒有本地DNS服務器。
也許你也可以嘗試禁用WiFi,因爲DNS解析應該在你的移動網絡中自動工作。
ECONNREFUSED
意味着你的設備上DNS解析器可以試圖故障轉移到TCP/IP(而不是UDP),因爲答案是太長,無法在正常的UDP響應數據包。
如果配置的DNS服務器不支持TCP上的入站DNS請求,則會出現該錯誤。
客戶端應用程序通常無法從UDP套接字獲取ECONNREFUSED
,因爲它們是無狀態的。
也看到了這一點,並將errno 13(EACCES) - 權限被拒絕,這也是通過添加INTERNET權限解決。 – WilliamKF