É possível conectar um socket entre dois dispositivos móveis (iPhones) pela internet?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

É possível conectar um socket entre dois dispositivos móveis (iPhones) pela internet?

Eu estou tentando descobrir o IP de cada dispositivo e se conectar diretamente. Eu sei que pode ser feito com Bonjour, mas que só funciona em redes locais. Eu preciso de uma conexão de alta velocidade entre dois dispositivos através da internet.

Graças.

Foi útil?

Solução

Se você tivesse tanto o IP do e ambos estavam roteáveis, deve ser possível. Não tenho a certeza que se o IP é dado pela rede 3G são roteáveis. Se você estiver usando Wi-Fi, o IP que você recebe é quase certamente não roteáveis. Supondo que você tenha um IP roteáveis, porém, deve ser possível.

O truque é apenas descobrir o IP do outro dispositivo. A melhor maneira de fazer isso seria provavelmente ter cada dispositivo registrar seu IP com um serviço web quando seu aplicativo é iniciado, em seguida, consulta que o serviço para encontrar os IPs de outros dispositivos.

Pode ficar um pouco complicado gerir "unregistering" IPs quando o aplicativo é fechado ou quando altera um IP embora, mas deve ser factível.

ETA:

Se você tem um servidor que eles podem tanto de conexão para, você deve ser capaz de implementar uma solução usando esse servidor (ou seja, sem os telefones realmente conectam diretamente uns aos outros). Isso evitaria o problema de ter IPs roteáveis ??para os telefones.

Quanto à forma de colmatar as tomadas em conjunto - o programa servidor seria basicamente o trabalho como uma operadora de telefonia telefonista old-school. Você teria algum tipo de registro e protocolo de descoberta embutida no software de servidor que permitiria um telefone para se registrar com o servidor, consulta uma lista de outros telefones atualmente conectados ao servidor, indicam qual o telefone que quer falar, e aceitar conexões de outros telefones.

Uma vez que ele sabe quem quer falar com quem, o seu software servidor iria ligar os dois juntos com a leitura da tomada de um telefone e escrever esses dados para a tomada de outro telefone.

Outras dicas

Apenas uma sugestão, mas se você pode obter cada um deles para conectar-se a um terceiro local, então você vai saber o endereço de cada um. Envie o endereço do telefone A para telefone B (e / ou telefone B para o telefone A) e então eles têm que conectar como você vê o ajuste.

Você já olhou através de todos os 3,0 características? Especificamente Peer Networking (cuja existência é público).

roteadores WiFi, muitas vezes têm um recurso chamado "Port Triggering", que permite que os hosts internos (neste caso um iPhone) para informar ao roteador que eles gostariam de ter um conexões em determinada porta encaminhada para eles. Eu não tenho idéia se o iPhone suporta este protocolo.

Para IP lookup você pode considerar usar DynamicDNS se os dois exércitos são conhecidos antes do tempo ou como dito acima um serviço personalizado web se eles não são (isto é, amigos trocando nomes de host contra estranhos descobrindo um ao outro)

Esta é uma discussão antiga, mas eu só vim através dele. Você pode usar um servidor STUN (ou NAT-PMP) para obter o endereço IP público / combinação porta e, em seguida, SMS-lo para o outro telefone. Contanto que você abrir uma porta de escuta no primeiro dispositivo, o segundo dispositivo pode apenas conectar diretamente usando a publi endereço IP / porta que você enviou a ele no SMS (Registro impulso SMS pode acordar automaticamente seu aplicativo no segundo dispositivo para fazer isso)

Eu executar para esse problema com um aplicativo eu estava desenvolvendo. Eu estava tentando se conectar a um cartão de celular PC a partir de um iPhone. O problema é que a AT & T não permite terminação móvel para iPhones por isso é fisicamente impossível para dois telefones em uma rede AT & T para conectar um ao outro. Esta é em linha reta de um AT & T antena engenheiro.

Eu era capaz de chegar a este trabalho por ter a VPN iPhone em um servidor e, em seguida, conectar-se ao cartão de células PC, mas para além disso, ele não iria funcionar.

Eu tenho um sentimento muito forte (mas nenhuma evidência) que o endereço iPhone vai ser não-roteáveis. É claro que ele realmente depende do operador, mas a AT & T dar 10.x.x.x endereços.

amostra (desktop) código que usa Bonjour para implementar portmapping em um WiFi roteador compatível UnPnP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top