Я использую NSURLConnection
для доступа к веб-службе (на хосте .local
).Когда я получаю доступ к хосту по имени хоста, я вижу задержку более 5 секунд, но когда я получаю доступ к нему по IP, соединение завершается почти мгновенно.Запуск приложения на реальном iPhone вместо симулятора вообще не показывает никаких задержек (тестирование проводилось на том же сетевом соединении).Так что, похоже, это проблема, характерная для iOS Simulator или 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 секунд, что объясняет задержку.