【发布时间】:2011-12-24 18:03:14
【问题描述】:
我正在使用NSURLConnection 访问网络服务(在.local 主机上)。当我通过主机名访问主机时,我看到了 5 秒以上的延迟,但是当我通过 IP 访问它时,连接几乎立即完成。
在真正的 iPhone 而不是模拟器上运行应用程序根本不会显示任何延迟(测试是在相同的网络连接上完成的)。所以这似乎是 iOS 模拟器或 OS X 特有的问题。
我可以使用以下终端命令模拟问题:
nslookup webservice.myhost.local(速度很快)
dscacheutil -q host -a name webservice.myhost.local(显示延迟)
使用dscacheutil 命令的Wireshark 分析网络流量时,我看到几个Standard query AAAA 请求被标记为红色并得到一个空响应。完成这些操作后,我会看到一个 Standard query A 请求,它的响应包含正确的 IP 地址。 AAAA 请求大约需要 5 秒,这可以解释延迟。
【问题讨论】:
-
您可以截取此类数据包并将其放在网络上的某个位置(例如,imageshack.us 或您自己的网站)。
标签: objective-c ios dns nsurlconnection