слушатель гнезда iPhone по сотовым данным - PullRequest
1 голос
/ 18 января 2011

Возможно ли, чтобы iPhone (или любое другое устройство через сотовую сеть) прослушивал розетку и ждал, пока другие айфоны подключатся через сеть AT & T (P2P)?Мы можем успешно сделать это через нашу локальную сеть, но не через сеть AT & T.

Ответы [ 2 ]

3 голосов
/ 10 февраля 2011

Я не являюсь клиентом AT & T, но устройства в их сети 3G почти наверняка отстают от какой-либо формы преобразования сетевых адресов или "NAT", как это обычно известно.

Учитывая, что вам нужна двусторонняя связь между устройствами, которые почти наверняка оба находятся за (возможно, разными) NAT, вам нужен какой-то метод обхода рассматриваемых NAT. Введите Session Traversal Utilities для NAT или «STUN» для краткости. Также посмотрите на общие сетевые методы пробивки отверстий .

Существует лицензия Objective-C / Cocoa для обхода NAT с именем TCMPortMapper , под либеральной лицензией MIT. Он обеспечивает поддержку UPnP и NAT-PMP , что может или не может помочь вам в этом - это зависит от того, разрешают ли AT & T (или любая другая рассматриваемая телекоммуникационная компания) запрашивать порты.

Если вышеупомянутой платформы недостаточно, вам придется поискать хорошо известный (т. Е. В широко открытом Интернете) сервер ретрансляции для обеспечения связи между двумя устройствами. Этот метод обычно используется такими сервисами, как Skype, Hamachi, Xbox Live и другими. Удачи!

0 голосов
/ 10 февраля 2011

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

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

Если это станет слишком сложным, вы захотите исследовать P2P-инфраструктуры, такие как JXTA (или JXSE, его реализация в Java). Кстати, JXTA / JXSE работает для пиров с частным IP-адресом. Я слышал, что JXSE был успешно перенесен и на Android.

...