Ren*_*ené 5 dns objective-c nsurlconnection ios
我用来NSURLConnection访问网络服务(在.local主机上)。当我通过主机名访问主机时,我看到了 5 秒以上的延迟,但是当我通过 IP 访问它时,连接几乎立即完成。在实际的 iPhone(而不是模拟器)上运行该应用程序根本不会显示任何延迟(测试是在同一网络连接上完成的)。所以这似乎是 iOS 模拟器或 OS X 特有的问题。
我可以使用以下终端命令来模拟问题:
nslookup webservice.myhost.local(速度很快)
dscacheutil -q host -a name webservice.myhost.local(显示延迟)
当使用命令的 Wireshark 分析网络流量时dscacheutil,我看到几个Standard query AAAA标记为红色的请求并得到空响应。完成这些操作后,我会看到一个Standard query A请求,该请求的响应包含正确的 IP 地址。AAAA 请求大约需要 5 秒,这可以解释延迟的原因。
Web 服务是否可能启用了 IPv6,而您无法从模拟器中使用它?
例如,当我运行本地仅 IPv4 的 DNS 服务时,我会在 OSX 上看到此情况 - 如果我运行dig @localhost则会挂起几秒钟,直到初始 IPv6 连接超时,然后它会尝试 IPv4。
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |