gethostbyname失败,错误111(ECONNREFUSED)

时间:2011-03-11 08:31:06

标签: android android-ndk sockets gethostbyname

该设备确实具有网络连接(WiFi和3G)。

调用gethostbyname()会返回NULL,错误为111(ECONNREFUSED)。

同样的调用在osx和windows上运行正常。

可能是什么问题?

最佳,

3 个答案:

答案 0 :(得分:2)

您应该在AndroidManifest.xml中添加使用Internet的权限:

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

答案 1 :(得分:0)

问题很可能是设备上配置的DNS服务器设置错误或错误。一定要检查一下。这很可能是您本地WiFi网络的一个问题 - 可能没有本地DNS服务器。

也许你也可以尝试禁用WiFi,因为DNS解析应该在你的移动网络中自动运行。

答案 2 :(得分:0)

ECONNREFUSED表示设备上的DNS解析器可能已尝试故障转移到TCP / IP(而不是UDP),因为答案太长而无法适应正常的UDP响应分组。

如果配置的DNS服务器不支持TCP上的入站DNS请求,则会收到该错误。

客户端应用程序通常无法从UDP套接字获取ECONNREFUSED,因为它们是无状态的。