Какой метод широковещательной / многоадресной рассылки мы должны использовать? - PullRequest
0 голосов
/ 27 сентября 2011

Мы создаем мобильное приложение, которое выиграет от знания идентификатора другого объекта в той же сети (при условии, что два мобильных телефона находятся в одной и той же сети WiFi).

Нам нужен «мастер»Приложение для отправки идентификатора, который «ведомое» приложение может забрать и сохранить.Независимо от того, когда «ведомый» подключается к сети, он должен идентифицировать Мастера (получить идентификатор Мастера) и использовать его до тех пор, пока не получит новый (из другой сети и нового Мастера).

Мы требуем, чтобы реализация была осуществима под iOS и Android (предпочтительно также под J2ME) и чтобы этот метод, скорее всего, был доступен в обычных сетевых конфигурациях (включая общедоступные настройки WiFi, если оба клиента имеют надлежащий доступ к сети).*

Какой метод широковещательной / многоадресной передачи следует использовать?

1 Ответ

0 голосов
/ 29 сентября 2011

Удобство использования в публичных WiFi-подключениях практически исключает возможность многоадресной рассылки на IP-уровне.

Если вас интересуют только Приложения в той же подсети, вы можете сделать трансляцию.Я думаю, что базовые станции, как правило, имеют все подключенные машины в одной подсети, тогда как сети 3G, как правило, блокируют все широковещательные сообщения между ключами.

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

Все это требует довольно общих функций TCP / UDP, которые должны иметь даже J2SE.

...