Я верю, что вам нужен одноранговый канал связи между серверным приложением и iOS, главная проблема здесь в том, что вам нужно переходить между NAT между этими двумя устройствами.
Существует несколько способов достижения этой цели, UDP Hole Punching - один из них, который прост в реализации и имеет высокий коэффициент успеха при обходе NAT.
Чтобы установить связь с этим методом, вы по существу необходимы три компонента:
Peer: Традиционный UDP клиент/сервер, это то же самое, как ваш UDP приложение, которое работает по локальной сети.
STUN Server: Сервер для простого обхода протокола пользовательских графов данных (UDP) через трансляторы сетевых адресов (NAT). он просто помогает вам сопоставить свой адрес локального компьютера с общедоступным.
Вам не нужно писать или развернуть свой собственный, есть несколько серверов STUN готовы для общественного пользования, 203.183.172.196:3478 (s1.taraba.net)
является одним из них (есть также некоторые реализации с открытым исходным кодом, если вам нужно развернуть свой собственный, например http://sourceforge.net/projects/stun/).
Скомпилированного список общедоступных серверов STUN: https://gist.github.com/zziuni/3741933
Вот простая реализация Клиент STUN с хорошим объяснением: http://www.codeproject.com/Articles/18492/STUN-Client
Rendezvous сервер: простой публичный сервер, который проводит публичные адреса для всех онлайн-партнеров.
связи Шаги:
Объявление
1- Peer запрос сам из STUN сервера, чтобы найти его Public IP: Port адрес.
2- Peer объявляет о себе на Rendezvous Server и устанавливает его статус для связи.
3- A Peer должен периодически обновлять свое состояние и публичный доступ.
Подключение
1- Приложение будет найти публичный адрес целевой Peer от Рандеву-сервера (на основе ID/Знака, ...)
2- Приложение будет установить UDP соединение с при условии общественного IP: адрес порта такой же, как и обычная связь по протоколу UDP.
3 Приложение должно проверять сервер Rendezvous для обновления целевого равноправного публичного адреса/состояния.
ПРИМЕЧАНИЕ: UDP перфорация не будет работать со всеми комбинациями NAT, в таких ситуациях вы должны использовать Relay Server установить соединение, она по существу работает в качестве связующего звена между груш, которые не могут видеть друг друга (их NAT заблокированы)
Я предлагаю вам взглянуть на http://www.brynosaurus.com/pub/net/p2pnat/ для получения дополнительной информации об одноранговой связи через NAT.
это можно сделать очень просто, используя AngularJs, но я уверен, что есть некоторые другие способы, которые это можно сделать, а также у нас в настоящее время есть что-то подобное для нашей производственной системы прямо сейчас :) – MethodMan
Даже вы пишете веб-сервис , вам нужно найти этот ресурс через некоторую ip-ссылку? Я не уверен в этом. Но Teamviwer - одноранговое приложение. TV дает номер, но есть серверы-посредники/серверы ретрансляции, которые помогут реализовать ключ и pwd для подключения к человеку. Это число по существу используется для решения одноранговых сетей. –
DJKRAZE, RCBrand, спасибо за ответы Я думаю, что речь идет о peer-to-peer, но я не понимаю, как подключить одноранговую систему iOS к плееру Windows ... Какой протокол (?) Использовать? –