Основываясь на недавних эмпирических результатах и на различных публикациях в Интернете, кажется, что приложение, работающее на iPhone с включенной персональной точкой доступа, не может отправлять широковещательные и / или многоадресные сообщения в сеть персональной точки доступа. Может кто-нибудь пролить свет на причину этой проблемы?
Приложение
У меня есть приложение IOS, созданное с использованием кроссплатформенного кода C ++, которое транслирует и передает свое присутствие в сеть, в которой работает. Приложение работает безупречно, когда iPhone подключен к сети Wi-Fi. В этом случае другие устройства в сети получают широковещательные / многоадресные рассылки, и все работает правильно. Это можно легко проверить, подключив компьютер с WireShark к сети - пакеты широковещательной / многоадресной передачи можно увидеть в трассировке пакетов.
Излишне говорить, что приложение хорошо работает на iPhone, подключенном к локальной сети Wi-Fi.
Эта проблема
Когда я запускаю приложение на iPhone, для которого включена его личная точка доступа, в сеть точек доступа не передаются широковещательные и многоадресные сообщения. Это можно проверить с помощью WireShark, который не показывает таких пакетов в своей трассировке.
Есть ли какие-либо ограничения относительно использования личной точки доступа в качестве сетевого маршрутизатора, способного обрабатывать широковещательные и многоадресные рассылки?
Когда я запрашивал веб-страницу на моем устройстве «WireSharking» с помощью браузера, персональная точка доступа корректно реагирует на все пакеты, возвращая веб-содержимое.
Информация о залоге
Я столкнулся с другими вставками переполнения стека, которые сообщают о тех же или похожих проблемах:
- TCP-соединение не работает должным образом при использовании iPhone в качестве точки доступа
- Не удалось отправить ssdp трансляцию через личную точку доступа
Хороший учебник для написания такого приложения для вещания / многоадресной рассылки на iPhone - Майкл Тайсон " Создание из Talkie: мульти-интерфейс вещания и многоадресной рассылки Msgstr "Достаточно сказать, что мое приложение соответствует всем требованиям (например, установка параметров сокетов SO_BROADCAST, SO_DONTROUTE и IP_MULTICAST_IF, где необходимо).
Ответ на ссылку (1) выше пишет " Может ли это быть потому, что личная точка доступа вводит трансляцию сетевых адресов? Msgstr "Я отфильтровал трассировки WireShark, чтобы показать только пакеты, подключенные к IP-адресу горячей точки, и нет никаких доказательств того, что личная горячая точка отправляет что-либо по адресу NAT.
В итоге
Кто-нибудь может объяснить, почему iPhone, на котором запущена личная точка доступа, не передает / многоадресные пакеты, и как решить проблему?
Спасибо заранее.
Постскриптум Я первоначально отправил этот запрос на переполнение стека и узнал об этом более Apple-ориентированном форуме.