прерывистое «No Route to Host» на iOS, режим полета выключен, затем исправления - PullRequest
0 голосов
/ 03 сентября 2010

Приложение для iPhone использует UDP для связи по сотовой сети.

Обычно это работает, за исключением того, что иногда операционная система возвращает «Нет маршрута к хосту» (65) при вызове sendto, и с этого момента он никогда не работает - я просто продолжаю получать ту же ошибку, даже если я закрываю и снова откройте приложение. Однако, если я переключаю режим полета (предположительно, сбрасываю стек сообщений), а затем возвращаюсь в приложение, все работает.

У меня отключен WiFi, чтобы я мог заставить его использовать сотовую сеть. Кроме того, если я переведу телефон в это нерабочее состояние и открою, скажем, приложение Stocks, оно кратко (в течение примерно 1 секунды) сообщает «Сеть недоступна» перед подключением и обновлением. Такое ощущение, что в приложении Stocks есть какой-то код, который распознает проблему и выполняет своего рода сброс и повтор. Я полагаю, что приложение использует TCP / IP для связи с веб-службой.

Кто может сказать мне, что происходит, или как я могу сделать тот же «сброс и повтор», который, как мне кажется, делает Stocks? Любые идеи высоко ценится:)

Jade


APP (Udp) работает нормально, отправляет запрос и получает ответ

Пт. 3 сентября 15:48:56 Udp iPhone-de-Jade-Burton [5866]: JDuplicateFilter получил пакет: index = 0, group = 0, total = 1 Пт 3 сентября 15:48:56 iPhone-de-Jade-Burton Udp [5866]: JDuplicateFilter: получил группу 0, как и ожидалось Пт 3 сентября 15:48:56 iPhone-de-Jade-Burton Udp [5866]: JDuplicateFilter: добавлен один элемент. 1 предмет (ов) в наборе, 1 предмет (ов) в очереди Пт 3 сентября 15:48:56 iPhone-де-Джейд-Бертон Udp [5866]: JResender стирает пакет в ожидании ACK: индекс = 0, группа = 0, всего = 1 Пт 3 сентября 15:48:56 iPhone-de-Jade-Burton Udp [5866]: JMerger: простая группа из одного пакета, проходящая через Пт 3 сентября 15:48:56 iPhone-де-Жаде-Бертон Udp [5866]: ответ

ТЕЛЕФОН СЕРВЕРА ОТЛАДКИ ГЛАВНАЯ

Пт. 3 сентября 15:49:54 iPhone-de-Jade-Burton com.apple.debugserver-48 [5871]: debugserver-48 для armv6 Copyright (c) 2007-2009 Apple, Inc. Все права защищены. Пт 3 сентября 15:49:54 iPhone-de-Jade-Burton com.apple.debugserver-48 [5871]: подключение к сервису com.apple.debugserver ... Пт 3 сентября 15:49:55 Ядро iPhone-de-Jade-Burton [0]: lockbot [5870] Встроенный профиль: отладочный сервер (песочница)

COMMCENTER ДЕАКТИВИРУЕТ ЧТО-ТО, ПОТОМУ ЧТО ЭТО НЕ ИСПОЛЬЗУЕТСЯ 8 МИНУТ? *

Пт. 3 сентября 15:57:50 iPhone-de-Jade-Burton CommCenter [31]: отключение контекста PDP 0, потому что он бездействует. Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton configd [24]: .519 (+600.896) SCDynamicStore «сетевое» уведомление Состояние: / Сеть / Интерфейс / pdp_ip0 / IPv4: удалено Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton CommCenter [31]: деактивированный контекст PDP 0, который поддерживает типы подключения 0x1

НАСТРАИВАЕТ НАМ, ЧТО ВЕЩИ ИЗМЕНИЛИСЬ

Пт. 3 сентября 15:57:52 Конфигурация iPhone-de-Jade-Burton [24]: CaptiveNetworkSupport: CaptiveHandleNetworkChanged: 2158 ключ: состояние: / сеть / служба / 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 / IPv4 Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton configd [24]: .670 (+0.151) SCDynamicStore «сетевое» уведомление Состояние: / Сеть / Сервис / 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 / IPv4: удалено Пт 3 сентября 15:57:52 Настройка iPhone-de-Jade-Burton [24]: конфигурация сети изменена. Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton configd [24]: .948 (+0.278) SCDynamicStore «сетевое» уведомление Состояние: / Сеть / Глобальная / IPv4: удалено Состояние: / Сеть / Global / DNS Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton configd [24]: .964 (+0.016) dnsinfo уведомление Пт 3 сентября 15:57:52 iPhone-de-Jade-Burton configd [24]: .985 (+0,020) Первичная служба: удалено Пятница, 3 сентября 15:57:53 Настройка iPhone-de-Jade-Burton [24]: имя хоста (префы) = iPhone-de-Jade-Burton

APP (Udp) НЕТ ДЛИННОЙ РАБОТЫ, ПОЛУЧАЕТ ОШИБКУ НА sendto

Пт. 3 сентября 15:58:39 Udp iPhone-de-Jade-Burton [5866]: JSplitter отправляет пакеты Пт 3 сентября 15:58:39 iPhone-де-Жаде-Бертон Udp [5866]: 16 байт, индекс = 1, группа = 1, всего = 1Пт 3 сентября 15:58:39 iPhone-де-Жаде-Бертон Udp [5866]: JResender сохранил пакет.всего сейчас: 1 пт 3 сен 15:58:39 Udp iPhone-de-Jade-Burton [5866]: ошибка сокета 65, нет маршрута к пт 3 сен 15:58:43 Udp iPhone-de-Jade-Burton [5866]: JSplitter отправляет пакеты пт 3 сентября 15:58:43 iPhone-de-Jade-Burton Udp [5866]: 16 байт (-ов), индекс = 1, группа = 2, всего = 1 пт 3 сентября 15:58:43iPhone-de-Jade-Burton Udp [5866]: JResender сохранил пакет.всего сейчас: 2 пт 3 сен 15:58:43 iPhone-de-Jade-Burton Udp [5866]: ошибка сокета 65, нет маршрута к хосту

ЗАПУСК ЗАПУСКА «ОШИБКА»?

Пт 3 сентября 15:59:06 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0xeb7c] [5866]): (UIKitApplication: com.yourcompany.Udp [0xeb7c]) Ошибка: launchd_core_logic.c: 2688 (24132): 10 пт, 3 сентября 15:59:06 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0xeb7c] [5866]): (UIKitApplication: com.yourcompany.Udp [0xeb7c]) Работа около 5020256. Предполагается, что задание не выполнено.Пт 3 сентября 15:59:06 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0xeb7c] [5866]): (UIKitApplication: com.yourcompany.Udp [0xeb7c]) Похоже, что работа завершилась сбоем: ошибка сегментации

Ошибка в моем приложении, чтобы сделать это с неясным выключением, а не прямо сейчас

пт 3 сентября 15:59:06 iPhone-de-Jade-Burton SpringBoard [39]: приложение «Udp» вышло ненормально с сигналом 11: ошибка сегментации пт 3 сентября 16:03:09 iPhone-de-Jade-Burton SpringBoard [39]: убийство com.yourcompany.Udp активировать: деактивировать: для приложенияустановка пт 3 сентября 16:03:11 iPhone-de-Jade-Burton SpringBoard [39]: перезагрузка и рендеринг всех значков приложений.

ТЕЛЕФОНЫ ОТЛАДКИ СЕРВЕРА ДОМАШНЕЕ СНОВА

Пт 3 сентября 16:03:18 iPhone-de-Jade-Burton com.apple.debugserver-48 [5896]: debugserver-48 для armv6 Copyright (c) 2007-2009 Apple, Inc. Все права защищены.Пт 3 сентября 16:03:18 iPhone-de-Jade-Burton com.apple.debugserver-48 [5896]: подключение к сервису com.apple.debugserver ... пт 3 сентября 16:03:19 iPhone-de-Jade-Burton kernel [0]: lockbot [5888] Встроенный профиль: отладочный сервер (песочница) пт 3 сентября 16:03:20 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0x62c6] [5897]): (UIKitApplication: com.yourcompany.Udp [0x62c6]) Появляется и ждет подключения отладчика, прежде чем продолжить ... Пятница, 3 сентября 16:03:21 iPhone-de-Jade-Burton com.apple.debugserver-48 [5896]: получил соединение, ожидая инструкций отладчика для задачи "(null)".Пт 3 сентября 16:03:21 ядро ​​iPhone-de-Jade-Burton [0]: launchd [5897] встроенный профиль: контейнер (песочница) пт 3 сентября 16:03:21 ядро ​​iPhone-de-Jade-Burton [0]: launchd [5897] Контейнер: / private / var / mobile / Applications / B69449D6-EBC4-41E1-AEB0-8D8C91C7EA17 [69] (песочница)

I RELAUNCH МОЕ ПРИЛОЖЕНИЕ;ЕЩЕ НЕ РАБОТАЕТ

Пт 3 сентября 16:03:40 Udp iPhone-de-Jade-Burton [5897]: отправка пакетов JSplitter Пт 3 сентября 16:03:40 Udp iPhone-de-Jade-Burton [5897]: 16 байт (-ов), индекс = 1, группа = 0, всего = 1 пт 3 сентября 16:03:40 iPhone-de-Jade-Burton Udp [5897]: ПРИМЕЧАНИЕ: последовательность отправляющих групп 0 пт 3 сентября 16:03:40 iPhone-de-Jade-Burton Udp [5897]: JResender сохранил пакет.всего сейчас: 1 пт 3 сен 16:03:40 iPhone-de-Jade-Burton Udp [5897]: ошибка сокета 65, нет маршрута к хосту

Выйти из моего приложения

пт сен3 16:03:46 iPhone-de-Jade-Burton Udp [5897]: recvfrom вернул -1

БОЛЬШЕ ЗАПУСКА ЖУРНАЛОВ "ОШИБКИ"

Пт 3 сентября 16:03:46 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0x62c6] [5897]): (UIKitApplication: com.yourcompany.Udp [0x62c6]) Ошибка: launchd_core_logic.c: 3270 (24132): 0 пт 3 сен 16:03:46 iPhone-de-Jade-Burton com.apple.debugserver-48 [5896]: 1 [1708/1403]: ошибка: :: read (6, 0x3809f4, 1024) =>-1 ошибка = неверный дескриптор файла (0x00000009)Пт 3 сентября 16:03:46 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0x62c6] [5897]): (UIKitApplication: com.yourcompany.Udp [0x62c6] ) Ошибка: launchd_core_logic.c: 799 (24132): 3 Пт 3 сентября 16:03:46 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0x62c6] [5897]): (UIKitApplication: com.yourcompany.Udp [0x62c6] ) Ошибка: launchd_core_logic.c: 2688 (24132): 10 Пт 3 сентября 16:03:46 iPhone-de-Jade-Burton com.apple.launchd [1] (UIKitApplication: com.yourcompany.Udp [0x62c6] [5897]): (UIKitApplication: com.yourcompany.Udp [0x62c6] ) Работа около 5020256. Предполагается, что работа потерпела крах.

СЕЙЧАС ЗАПУСКАЕТ приложение "Акции"

Пт. 3 сентября 16:03:46 iPhone-de-Jade-Burton SpringBoard [39]: невозможно удалить задание с меткой UIKitApplication: com.yourcompany.Udp [0x62c6]. Ошибка: нет такого процесса Пт 3 сентября 16:03:53 Акции iPhone-de-Jade-Burton [5900]: CGImageCreateWithImageProvider: недопустимый размер изображения: 10 x 10. Пт 3 сентября 16:03:53 Акции iPhone-de-Jade-Burton [5900]: CGImageCreateWithImageProvider: недопустимый размер изображения: 10 x 10. Пт 3 сентября 16:03:53 iPhone-de-Jade-Burton UIKitПрименение: com.apple.stocks [0x680e] [5900]: пт 3 сентября 16:03:53 iPhone-de-Jade-Burton Stocks [5900]: CGImageCreateWithImageProvider : неверный размер изображения: 10 x 10. Пт 3 сентября 16:03:53 iPhone-de-Jade-Burton UIKitПрименение: com.apple.stocks [0x680e] [5900]: пт 3 сентября 16:03:53 iPhone-de-Jade-Burton Stocks [5900]: CGImageCreateWithImageProvider : неверный размер изображения: 10 x 10. Пт 3 сентября 16:03:53 Настройка iPhone-de-Jade-Burton [24]: CaptiveNetworkSupport: UIAllowedNotifyCallback: 70 uiallowed: true

CommCenter

Пт. 3 сентября 16:03:53 iPhone-de-Jade-Burton CommCenter [31]: Клиент [Акции] сообщает контексту PDP 0, чтобы он стал активным. Пятница, 3 сентября 16:03:53 iPhone-de-Jade-Burton CommCenter [31]: принудительно установить маску соединения для 0, чтобы он был подключен к Интернету, потому что маски нет Пт 3 сентября 16:03:53 iPhone-de-Jade-Burton CommCenter [31]: Клиент [Акции] сообщает контексту PDP 0, чтобы он стал активным. Пятница, 3 сентября 16:03:53 iPhone-de-Jade-Burton CommCenter [31]: принудительно установить маску соединения для 0, чтобы он был подключен к Интернету, потому что маски нет Пт 3 сентября 16:03:54 iPhone-de-Jade-Burton CommCenter [31]: Клиент [Акции] сообщает контексту PDP 0, чтобы он стал активным. Пт 3 сентября 16:03:54 iPhone-de-Jade-Burton CommCenter [31]: принудительно установить маску соединения для 0, чтобы быть в Интернете, потому что нет маски Пт 3 сентября 16:03:54 iPhone-de-Jade-Burton CommCenter [31]: Клиент [Акции] сообщает контексту PDP 0, чтобы он стал активным. Пятница, 3 сентября 16:03:54 iPhone-de-Jade-Burton CommCenter [31]: принудительно установить маску соединения для 0, чтобы он был подключен к Интернету, потому что маски нет

CONFIGD

Пт. 3 сентября 16:03:55 Конфигурация iPhone-de-Jade-Burton [24]: .885 (+362.900) SCDynamicStore «сетевое» уведомление Состояние: / Сеть / Интерфейс / pdp_ip0 / IPv4: { Адреса: { 0: 10.165.224.136 } DestAddresses: { 0: 10.165.224.136 } }

Пт. 3 сентября 16:03:56 Настройка iPhone-de-Jade-Burton [24]: CaptiveNetworkSupport: CaptiveHandleNetworkChanged: 2158 ключ: состояние: / сеть / служба / 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 / IPv4 Пт 3 сентября 16:03:56 Ядро iPhone-de-Jade-Burton [0]: AppleSerialMultiplexer: nif :: ioctl: MTU установлен в 1450 Пт 3 сентября 16:03:56 Настройка iPhone-de-Jade-Burton [24]: конфигурация сети изменена.

ИНТЕРФЕЙС, КОТОРЫЙ БЫЛ ПРЕДОТВРАТИТЕЛЬНО ОТКЛЮЧЕН, БЫЛ РЕАКТИВИРОВАН? ПРИМЕЧАНИЕ 3 СЕКУНДЫ ПОСЛЕ «ЗАПАСОВ» ЗАПУЩЕНО

Пт. 3 сентября 16:03:56 iPhone-de-Jade-Burton CommCenter [31]: активирован контекст PDP 0, который поддерживает типы подключения 0x1.

НАСТРАИВАЕТ НАМ ОБ ЭТОМ

Пт. 3 сентября 16:03:56 iPhone-de-Jade-Burton configd [24]: .274 (+0,388) SCDynamicStore «сетевое» уведомление Состояние: / Сеть / Сервис / 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 / IPv4: { Адреса: { 0: 10.165.224.136 } Имя интерфейса: pdp_ip0 Подпись сети: сотовая сеть WAN: pdp_ip0 Маршрутизатор: 10.165.224.136 Маски подсети: {0: 255.255.255.255}} Состояние: / Network / Global / DNS Состояние: / Network / Global / IPv4: {PrimaryInterface: pdp_ip0 PrimaryService: 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 Маршрутизатор: 10.165.224.136}

Пт 3 сентября 16:03:56 iPhone-de-Jade-Burton configd [24]: .805 (+0.530) dnsinfo уведомление пн 3 сентября 16:03:56 iPhone-de-Jade-Burton config [24]:.862 (+0,057) Основная служба: 3A1DA52C-9DBD-4573-9463-C4FEFAF18AF6 (pdp_ip0) Пт 3 сентября 16:03:56 Конфигурация iPhone-de-Jade-Burton [24]: имя хоста (prefs) = iPhone-de-Jade-Burton

ОТЛАДКА

пт 3 сентября 16:03:58 iPhone-de-Jade-Burton com.apple.debugserver-48 [5905]: debugserver-48 для armv6 Copyright (c)2007-2009 Apple, Inc. Все права защищены.Пт 3 сентября 16:03:58 iPhone-de-Jade-Burton com.apple.debugserver-48 [5905]: подключение к сервису com.apple.debugserver ... пт 3 сентября 16:03:58 iPhone-de-Jade-Burton kernel [0]: lockbot [5904] Встроенный профиль: debugserver (песочница) пт 3 сентября 16:04:05 iPhone-de-Jade-Burton com.apple.debugserver-48 [5906]: debugserver-48 для armv6 Copyright(c) 2007-2009 Apple, Inc. Все права защищены.Пт 3 сентября 16:04:05 iPhone-de-Jade-Burton com.apple.debugserver-48 [5906]: подключение к сервису com.apple.debugserver ... пт 3 сентября 16:04:05 iPhone-de-Jade-Burton kernel [0]: lockbot [5904] Встроенный профиль: debugserver (песочница) пт 3 сен 16:04:10 iPhone-de-Jade-Burton com.apple.debugserver-48 [5907]: debugserver-48 для armv6 Copyright(c) 2007-2009 Apple, Inc. Все права защищены.Пт 3 сентября 16:04:10 iPhone-de-Jade-Burton com.apple.debugserver-48 [5907]: подключение к сервису com.apple.debugserver ... пт 3 сентября 16:04:10 iPhone-de-Jade-Burton kernel [0]: lockbot [5904] Встроенный профиль: debugserver (песочница) пт 3 сентября 16:04:16 iPhone-de-Jade-Burton com.apple.debugserver-48 [5908]: debugserver-48 для armv6 Copyright(c) 2007-2009 Apple, Inc. Все права защищены.Пт 3 сентября 16:04:16 iPhone-de-Jade-Burton com.apple.debugserver-48 [5908]: подключение к сервису com.apple.debugserver ... пт 3 сентября 16:04:16 iPhone-de-Jade-Burton kernel [0]: lockbot [5904] Встроенный профиль: debugserver (песочница) пт 3 сентября 16:08:53 iPhone-de-Jade-Burton SpringBoard [39]: MultitouchHID (20af10) состояние uilock: 0 -> 1 пт3 сентября 16:08:54 iPhone-de-Jade-Burton настроен [24]: CaptiveNetworkSupport: UIAllowedNotifyCallback: 70 uiallowed: false

1 Ответ

0 голосов
/ 17 января 2011

Оказывается, происходит какое-то управление питанием, которое может отключить сетевой интерфейс 3G.API для его восстановления является частной компанией Apple.

Это чаще всего возникает при использовании простых ванильных разъемов BSD.

Apple добавила некоторый код внутри CFSocketStream для проверки трафика и поддержания работоспособности сетевого интерфейса, если трафик все еще продолжается.Если он не видит трафика в течение минуты или около того, сетевой интерфейс может быть сорван, а антенна отключена для экономии энергии.Если вы отправляете трафик через CFSocketStream, он должен вернуться обратно.В случае UDP вам, вероятно, придется открыть CFSocketStream и периодически отправлять некоторый трафик, чтобы поддерживать интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...