Как создать соединение между более чем 2 устройствами без какого-либо сервера - PullRequest
0 голосов
/ 12 июля 2011

все в вопросе ..
Я бы знал, как создать соединение между iPad / iPhone (отправитель) и множеством других устройств iPad / iPhone (слушатели). Проблема заключается в следующем: я должен создать это без использования промежуточного сервера.
Слушатели каждого устройства должны отвечать «вживую» на каждое сообщение отправителя.
Любое предложение, как этого добиться?

Ответы [ 4 ]

1 голос
/ 12 июля 2011

В основном вам нужен многоадресный DNS (Apple называет его Bonjour).Смотрите http://developer.apple.com/opensource/ для начала документации Apple, и смотрите http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/ для хорошей рецензии.

1 голос
/ 12 июля 2011

Используйте каркас Bonjour. Устройства должны находиться в одной подсети, но вы можете подключить их без использования сервера. Apple предоставляет хороший пример кода для платформы Bonjour. Я не выпустил приложение с использованием Bonjour, но я создал несколько приложений для разработки / проверки концепции с помощью Bonjour.

0 голосов
/ 12 июля 2011

Посмотрите на Одноранговое подключение через Bluetooth (это часть API GameKit в iOS).

0 голосов
/ 12 июля 2011

Если все устройства находятся в одной локальной сети, вы можете просто заставить их обнаруживать друг друга с помощью широковещательного или многоадресного UDP, а затем (когда они знают IP-адреса друг друга) обмениваться данными друг с другом напрямую либо через UDP, либо по TCP. (разумеется, количество требуемых прямых TCP-соединений очень быстро увеличивается с увеличением количества устройств, поэтому оно будет масштабироваться только до определенной степени. UDP может масштабироваться и дальше, поскольку не требуется устанавливать соединение между каждой парой устройства).

Реальная проблема заключается в том, что (как это возможно) устройства находятся в разных местах в Интернете, и некоторые или все из них находятся за NAT и межсетевыми экранами. В этом случае единственное, на что вы можете положиться - это способность устройств устанавливать исходящее TCP-соединение, и в этом случае вам почти необходим сервер для подключения к ним, поскольку они не смогут подключаться напрямую к каждому из них. другие в большинстве случаев (что NAT / межсетевые экраны будут фильтровать входящие пакеты TCP-соединения по соображениям безопасности).

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