该设备确实具有网络连接(WiFi 和 3G)。
调用 gethostbyname() 将返回 NULL,错误码为 111 (ECONNREFUSED)。
相同的调用在 osx 和 windows 上运行良好。
可能是什么问题呢?
最好的,
该设备确实具有网络连接(WiFi 和 3G)。
调用 gethostbyname() 将返回 NULL,错误码为 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 请求,您会收到该错误。
客户端应用程序通常无法ECONNREFUSED
从 UDP 套接字获取,因为它们是无状态的。