1

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

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

相同的调用在 osx 和 windows 上运行良好。

可能是什么问题呢?

最好的,

4

3 回答 3

2

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

<uses-permission android:name="android.permission.INTERNET"/>
于 2011-03-11T10:47:00.737 回答
0

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

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

于 2011-03-11T08:38:00.063 回答
0

ECONNREFUSED表明您设备上的 DNS 解析器可能已尝试故障转移到 TCP/IP(而不是 UDP),因为答案太长而无法放入正常的 UDP 响应数据包中。

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

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

于 2011-03-11T08:38:40.370 回答