UDP-сокет начинает не получать - PullRequest
1 голос
/ 12 октября 2010

У меня появляется очень раздражающая ошибка.

Мы оставили наше приложение для iPhone запущенным на ночь.

Каждые 2 секунды он отправляет широковещательный пинг в сеть через открытый разъем, чтобы сообщить, что устройство живо.Теперь другое приложение обнаруживает этот пинг и пытается отправить сообщения обратно.Проблема в том, что, несмотря на то, что пинг продолжает выходить, пакеты не принимаются.

Кажется, это происходит только через несколько часов (досадно, что нам удалось получить это только в одночасье).Затем он, кажется, оставляет iphone в очень запутанном состоянии, когда даже после перезапуска приложения он все еще не может получать пакеты.В конце концов, через некоторое время (извините, я понятия не имею, как долго) телефон начинает нормально работать, и я могу продолжать.

Я предполагаю, что где-то вдоль линии iOS блокирует сокет от получения данных (нокак ни странно, не посылая на одну и ту же розетку!).

Кто-нибудь знает, что это может быть, и, что более важно, как я могу решить проблему?

1 Ответ

0 голосов
/ 15 октября 2010

Ну, это оказалось очень странной проблемой.

Я запустил анализатор пакетов, чтобы проверить, что происходит, и обнаружил, что мой ПК отправляет широковещательные сообщения ARP, пытаясь определить, кто имеет IP-адрес. На эти запросы ARP не отвечал ни маршрутизатор, ни iPhone.

Это было очень странно.

В конце концов, я начал проверять точку доступа Wi-Fi, к которой был подключен. Я отключил Wi-Fi на нем, вынуждая нас использовать другую (хотя и немного более слабую) точку доступа, и внезапно на запросы ARP отвечали, и все ожило.

Именно в этот момент я вспомнил, что мой босс споткнулся о провод точки доступа и рухнул на землю. Это "казалось" сработало ... но, очевидно, он сломал "что-то": (

Теперь проблемы больше нет!

...