2011-03-11 125 views
1

設備確實具有網絡連接(WiFi和3G)。gethostbyname失敗,出現錯誤111(ECONNREFUSED)

調用gethostbyname()返回NULL與errno 111(ECONNREFUSED)。

相同的調用在osx和windows上工作正常。

可能是什麼問題?

最佳,

+0

也看到了這一點,並將errno 13(EACCES) - 權限被拒絕,這也是通過添加INTERNET權限解決。 – WilliamKF

回答

2

您應該添加在你的AndroidManifest.xml中使用Internet的權限:

<uses-permission android:name="android.permission.INTERNET"/> 
0

的問題是最有可能是沒有或錯誤配置的DNS服務器您的設備上設置。一定要檢查一下。這可能是本地WiFi網絡的問題 - 可能沒有本地DNS服務器。

也許你也可以嘗試禁用WiFi,因爲DNS解析應該在你的移動網絡中自動工作。

0

ECONNREFUSED意味着你的設備上DNS解析器可以試圖故障轉移到TCP/IP(而不是UDP),因爲答案是太長,無法在正常的UDP響應數據包。

如果配置的DNS服務器不支持TCP上的入站DNS請求,則會出現該錯誤。

客戶端應用程序通常無法從UDP套接字獲取ECONNREFUSED,因爲它們是無狀態的。

相關問題