2010-03-16 2 views
0

Эй, я пытаюсь подключить CFStream через 3G. Я могу заставить его работать через Wi-Fi, используя имя хоста, но когда я пытаюсь подключиться напрямую к ip-адресу, он терпит неудачу.Peer to peer over 3G

Есть ли руководство по подключению через 3G?

Благодаря ASH

ответ

2

В некоторых случаях вы можете использовать обход NAT. Это не гарантированный метод и зависит от типа NAT, поэтому вам понадобится сервер ретрансляции, если вы хотите гарантировать подключение.

Общее правило: если оба клиента находятся за симметричными NAT, тогда необходим сервер ретрансляции. Если только один NAT симметричен, тогда методы STUN, ICE могут быть полезны при установлении соединений P2P.

Следующая может помочь вам:

Interactive Connectivity Создание см en.wikipedia.org/wiki/Interactive_Connectivity_Establishment

PJNATH Открытый исходный код проекта для прохождения NAT в растворах/VoIP SIP см PJSIP.ORG

2

Когда вы подключены к 3G, то вы, как правило, за маршрутизатором, который реализует некоторую схему «NAT». Это означает, что ваш iPhone получает частный внутренний IP-адрес внутри (сеть 3G) и общий «реальный» публичный IP-адрес снаружи (Интернет).

Все это нормально, когда вы просто подключаетесь к услугам в Интернете, но это будет ужасно, если вы попытаетесь подключиться к другим клиентам в той же ситуации.

Для этого нет простого решения. Такие программы, как Skype, обходят эту проблему, используя промежуточные серверы с общедоступными IP-адресами, которые могут передавать сетевой трафик между хостами за такими сетями «NATted».