gpt4 book ai didi

android - 禁用 WiFi 时的 ConnectException 与 IOException?

转载 作者:行者123 更新时间:2023-11-29 00:40:06 24 4
gpt4 key购买 nike

我尝试连接到一个 IP 地址(例如 http://222.222.222.222:8080 )和一个 URL(例如 http://www.website.com ),而我的 wifi 被禁用了。我注意到,如果我没有 wiFi 并尝试连接到 IP 地址,它会给我一个 ConnectException 错误。另一方面,如果我没有 wiFi 并尝试连接到 URL,它会给我一个 IOException 错误。为什么我在两种情况下收到不同的 Exception 而唯一的区别是我为第一个提供了 IP 地址而为另一个提供了 URL?有人可以启发我吗?我要求澄清这一点。

谢谢!

最佳答案

由于不同的步骤失败,您会收到不同的错误。

当您尝试连接到 IP 地址的 80 端口时,connect(2) 系统调用失败了。 connect(2) 失败的原因有很多;您需要检查来自异常的消息,以便向用户提供良好的错误消息。

当您尝试连接到文本地址的端口 80 时,库将首先尝试使用 getaddrinfo 将主机名解析为 IP 地址(3)。名称解析可能会或可能不会失败,这取决于是否具有网络访问权限——例如​​,如果您尝试连接到 localhost,通常不需要网络访问权限,因为名称服务查找可以完全在本地设备。因为名称服务失败的发生是因为您无法联系名称服务器,所以给出不同的错误消息(和异常)是有意义的,即使潜在的原因对于给定的一组测试是相同的。由于各种原因,您可能无法联系名称服务器。同样,您需要检查来自异常的消息,以便向用户提供良好的错误消息。

关于android - 禁用 WiFi 时的 ConnectException 与 IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com