На самом деле ваш вопрос состоит из трех частей:
- Как определить соединение WiFi (iPhone)
- Как мне рекламировать / обнаруживать хосты / сервисы?
- Как мне передавать данные между хостами?
На низком уровне вы можете передавать данные с использованием соединения TCP / IP (вы прослушиваете какой-то порт хоста A и подключаетесь к этому хосту с хостаБ).Тем не менее, хосту B необходимо выяснить, что хост A находится в одной и той же локальной сети - обычно это делается с помощью хоста A, отправляющего широковещательные сообщения (скажем, через UDP) в локальной сети, которые идентифицируют его, чтобы хост B мог определитьIP-адрес А, чтобы он мог подключиться к нему.И, наконец, на устройстве, отличном от Mac, вы можете запустить все это только после того, как обнаружите, что устройство находится в сети Wi-Fi, поскольку в противном случае оно не будет работать.
Реализация всего вышеперечисленного (кромедля передачи данных) не совсем тривиально, но, к счастью, Apple предоставляет несколько инструментов для этого: SCNetworkReachability
предоставляет API, который будет уведомлять вас, когда устройство подключится к сети Wi-Fi (только для iOS, не требуется в Mac OS X).Тогда реклама и обнаружение услуг могут быть реализованы с помощью Bonjour: вы регистрируете свой собственный сервис, используя NSNetService
на одном хосте, а другой может вызывать NSNetServiceBrowser
, чтобы просмотреть локальную сеть на предмет доступных пиров.Наконец, вы можете использовать потоки для передачи данных, как только вы обнаружили нужный сервис.Взгляните на документацию Apple - здесь приведен пример кода для всех перечисленных объектов.Я бы не назвал это простым, но это потому, что то, что вы хотите, технически не совсем просто;).