Я разрабатываю приложение IOS, для которого необходимо установить стандартное TCP-соединение от одного iPhone (или iPod) к другому. Хорошо работает связь между приложениями на симуляторе и устройстве, а также между двумя симуляторами.
Приложение использует posix connect (), и я должен придерживаться этого метода, потому что другие модули являются чистыми C.
При вызове блоков приложения connect () и после тайм-аута возвращается ошибка.
Связь через wifi в локальной сети
Я понюхал трафик и обнаружил, что после подключения к симулятору устройство отправляет ARP, а после ответа продолжается стандартное TCP-квитирование и выполняется сеанс.
Тот же самый случай с iPhone <> iPhone останавливается после запроса ARP, потому что другой iPhone не отвечает на него. Кроме того, iOS отправляет только бесплатную ARP (объявляет, что это Mac IP-пара). Мой MAC, похоже, выполняет этот запрос, потому что его таблица ARP имеет запись iPhone, она не работает для другого iPhone.
Я пробовал службу Bonjour, но она также работает только с симулятором <>.
Мой вопрос:
Есть ли способ разрешить такое общение? Возможно ли, что это проблема только с моими iPhone? Есть ли какой-либо явный способ сообщить ОС об отправке ответа для arps, или он каким-то образом заблокирован для трафика ios <> ios communication.