¿Es posible conectar un socket entre dos dispositivos móviles (iPhones) a través de Internet?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Es posible conectar una toma entre dos dispositivos móviles (iPhones) a través de Internet?

Estoy intentando descubrir la IP de cada dispositivo y conectarme directamente. Sé que se puede hacer con Bonjour, pero eso solo funciona en redes locales. Necesito una conexión de alta velocidad entre dos dispositivos a través de internet.

Gracias.

¿Fue útil?

Solución

Si tuvieras ambas direcciones IP y ambas fueran enrutables, debería ser posible. No estoy seguro, sin embargo, si las IP dadas por la red 3G son enrutables. Si está utilizando WIFI, es casi seguro que la IP que obtiene no es enrutable. Asumiendo que tienes una IP enrutable, debería ser posible.

El truco es simplemente descubrir la IP del otro dispositivo. La mejor manera de hacerlo sería que cada dispositivo registre su IP con un servicio web cuando se inicie la aplicación, luego consulte ese servicio para encontrar las IP de otros dispositivos.

Puede ser un poco complicado gestionar "cancelar el registro" IP cuando la aplicación está cerrada o cuando cambia una IP, pero debería ser factible.

ETA:

Si tiene un servidor al que ambos pueden conectarse, debería poder implementar una solución que use ese servidor (es decir, sin que los teléfonos se conecten directamente entre sí). Esto evitaría el problema de tener direcciones IP enrutables para los teléfonos.

En cuanto a cómo unir los enchufes, su programa de servidor funcionaría básicamente como un operador de centralita telefónica de la vieja escuela. Tendrías algún tipo de registro & amp; protocolo de descubrimiento integrado en el software del servidor que permitiría que un teléfono se registre con el servidor, consultar una lista de los otros teléfonos actualmente conectados al servidor, indicar con qué teléfono quiere hablar y aceptar conexiones de otros teléfonos.

Una vez que sepa quién quiere hablar con quién, el software de su servidor los conectará entre sí leyendo desde el enchufe de un teléfono y escribiendo esos datos en el otro.

Otros consejos

Solo una sugerencia, pero si puede hacer que cada uno de ellos se conecte a un tercer sitio, sabrá la dirección de cada uno. Envíe la dirección del teléfono A al teléfono B (y / o el teléfono B al teléfono A) y luego haga que se conecten como mejor le parezca.

¿Has mirado a través de todas las características 3.0? Específicamente redes de pares (cuya existencia es pública).

Los enrutadores de WiFi a menudo tienen una función llamada " Activación de puertos " lo que permite que los hosts internos (en este caso un iPhone) informen al enrutador que les gustaría que se les reenvíen conexiones en un puerto en particular. No tengo idea si el iPhone es compatible con este protocolo.

Para la búsqueda de IP, puede considerar usar DynamicDNS si los dos hosts se conocen con anticipación O, como se indicó anteriormente, un servicio web personalizado si no lo son (es decir, amigos que intercambian nombres de host frente a desconocidos que se descubren entre ellos)

Este es un hilo viejo, pero acabo de encontrarlo. Podría usar un servidor STUN (o NAT-PMP) para obtener la combinación de puerto / dirección IP pública y luego enviarla por SMS al otro teléfono. Siempre que abra un puerto de escucha en el primer dispositivo, entonces su segundo dispositivo puede conectarse directamente utilizando la dirección IP / puerto publi que le envió en el SMS (el registro push de SMS puede activar automáticamente su aplicación en el segundo dispositivo para hacer esto)

Me he encontrado con este problema con una aplicación que estaba desarrollando. Estaba tratando de conectarme a una tarjeta celular de PC desde un iPhone. El problema es que AT & amp; T no habilita la terminación móvil para iPhones, por lo que es físicamente imposible que dos teléfonos en una red AT & amp; T se conecten entre sí. Esto es directamente de un ingeniero de antena AT & amp; T.

Pude hacer que esto funcionara al tener el iPhone VPN en un servidor y luego conectarme a la tarjeta celular de la PC, pero aparte de eso, no funcionaría.

Tengo un sentimiento muy fuerte (pero no hay evidencia) de que la dirección del iPhone no será enrutable. Por supuesto, en realidad depende del operador, pero AT & amp; T da direcciones 10.x.x.x.

Apple tiene código de muestra (escritorio) que usa Bonjour para implementar el mapeo de puertos en un enrutador WiFi que admita UnPnP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top