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

Насколько я вижу, вы указали в качестве параметра параметр «Козья еда», что означает, что метод поиска будет принимать объект типа «Коза». По сути, еда - это ссылочная переменная типа «Коза». Поэтому любая вещь, которую может делать Коза, должна относиться и к пище. В вашем классе Goat у вас есть только поле имени. Так что, когда вы создаете объект, вы можете просто дать ему имя, вот оно. Теперь вы передаете объект Goat в свой метод, поэтому для распечатки food.name ваша коза должна иметь имя первое.

11
задан Rog 1 May 2009 в 18:44
поделиться

6 ответов

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

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

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

ETA:

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

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

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

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

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

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

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

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

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

Это позволило бы избежать проблемы наличия маршрутизируемых IP-адресов для телефонов.

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

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

Это позволило бы избежать проблемы наличия маршрутизируемых IP-адресов для телефонов.

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

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

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

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

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

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

10
ответ дан 3 December 2019 в 07:39
поделиться

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

2
ответ дан 3 December 2019 в 07:39
поделиться

Have you looked through all the 3.0 features? Specifically peer networking (the existence of which is public).

1
ответ дан 3 December 2019 в 07:39
поделиться

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

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

1
ответ дан 3 December 2019 в 07:39
поделиться

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

У Apple есть образец (1132209) образца (настольного) кода , который использует Bonjour для реализации сопоставления портов на маршрутизаторе WiFi, который поддерживает UnPnP.

0
ответ дан 3 December 2019 в 07:39
поделиться

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

.
1
ответ дан 3 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: