Можно ли подключить розетку между двумя мобильными устройствами (iPhone) через Интернет?

StackOverflow https://stackoverflow.com/questions/811298

  •  03-07-2019
  •  | 
  •  

Вопрос

Можно ли подключить розетку между двумя мобильными устройствами (iPhone) через Интернет?

Я пытаюсь узнать IP-адрес каждого устройства и подключиться напрямую.Я знаю, что это можно сделать с помощью Bonjour, но это работает только в локальных сетях.Мне нужно высокоскоростное соединение между двумя устройствами через Интернет.

Спасибо.

Это было полезно?

Решение

Если у вас есть оба IP-адреса и оба они маршрутизируются, это должно быть возможно.Однако я не уверен, что IP-адреса, выдаваемые сетью 3G, маршрутизируются.Если вы используете WIFI, полученный вами IP-адрес почти наверняка не маршрутизируется.Однако если у вас есть маршрутизируемый IP-адрес, это должно быть возможно.

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

Хотя может оказаться немного сложнее управлять «отменой регистрации» IP-адресов, когда приложение закрыто или когда IP-адрес меняется, но это должно быть выполнимо.

Расчетное время прибытия:

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

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

Как только он узнает, кто с кем хочет поговорить, ваше серверное программное обеспечение соединит их вместе, считывая данные из разъема одного телефона и записывая эти данные в разъем другого телефона.

Другие советы

Это всего лишь предложение, но если вы сможете заставить каждого из них подключиться к третьему сайту, вы узнаете адрес каждого из них.Отправьте адрес телефона A на телефон B (и/или телефон B на телефон A), а затем подключите их по своему усмотрению.

Вы просмотрели все возможности версии 3.0?В частности, одноранговые сети (существование которых является общедоступным).

Маршрутизаторы Wi-Fi часто имеют функцию под названием «Запуск портов», которая позволяет внутренним хостам (в данном случае iPhone) сообщать маршрутизатору, что они хотели бы, чтобы им перенаправлялись соединения на определенном порту.Я понятия не имею, поддерживает ли iPhone этот протокол.

Для поиска IP вы можете рассмотреть возможность использования DynamicDNS, если два хоста известны заранее, ИЛИ, как указано выше, специальную веб-службу, если они не известны (т. е.друзья обмениваются именами хостов vs.незнакомцы открывают друг друга)

Это старая тема, но я только что наткнулся на нее.Вы можете использовать сервер STUN (или NAT-PMP), чтобы получить комбинацию общедоступного IP-адреса и порта, а затем отправить ее по SMS на другой телефон.Пока вы открываете порт прослушивания на первом устройстве, ваше второе устройство может просто подключиться напрямую, используя общедоступный IP-адрес/порт, который вы отправили ему в SMS (реестр push-сообщений может автоматически разбудить ваше приложение на втором устройстве для сделай это)

Я столкнулся с этой проблемой в приложении, которое разрабатывал.Я пытался подключиться к сотовой карте ПК с iPhone.Проблема в том, что AT&T не поддерживает мобильное терминирование для iPhone, поэтому двум телефонам в сети AT&T физически невозможно подключиться друг к другу.Это прямо от антенного инженера AT&T.

Мне удалось заставить это работать, подключив iPhone VPN к серверу, а затем подключившись к сотовой карте ПК, но в остальном это не сработало.

У меня очень сильное ощущение (но нет доказательств), что адрес iPhone не будет маршрутизироваться.Конечно, на самом деле это зависит от оператора, но AT&T выдает адреса 10.x.x.x.

у Apple есть пример (рабочего стола) кода который использует Bonjour для реализации сопоставления портов на маршрутизаторе Wi-Fi, поддерживающем UnPnP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top