2009-05-01 15 views
9

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

Estoy tratando de 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.

+0

¿Por qué es subjetivo? –

+1

Subjetivo porque estoy abierto a cualquier opinión sobre cómo debo/podría estar acercándome a esto. ¡Gracias! –

+1

Eso no es lo que significa subjetivo. Esto es bastante objetivo. Reetiquetado Yo también lo eliminé en tiempo real porque tampoco es "en tiempo real" en ese sentido. –

Respuesta

9

Si tenía las dos direcciones IP y ambas eran enrutables, debería ser posible. Sin embargo, no estoy seguro si las direcciones IP entregadas por la red 3G son enrutables. Si está utilizando WIFI, la IP que recibe casi con certeza no es enrutable. Sin embargo, suponiendo que tengas una IP enrutable, debería ser posible.

El truco está en descubrir la IP del otro dispositivo. La mejor manera de hacerlo sería, probablemente, hacer que cada dispositivo registre su IP con un servicio web cuando se inicie la aplicación y luego consultar ese servicio para encontrar las direcciones IP de otros dispositivos.

Puede ser un poco complicado administrar las direcciones IP de "anulación de registro" cuando la aplicación está cerrada o cuando cambia un IP, pero debería ser factible.

ETA:

Si tiene un servidor que ambos pueden conectarse a, usted debe ser capaz de implementar una solución usando ese servidor (es decir, sin los teléfonos realidad que conectan directamente entre sí). Esto evitaría el problema de tener direcciones IP enrutables para los teléfonos.

En cuanto a cómo unir las tomas entre sí, su programa de servidor funcionaría básicamente como un operador de la central telefónica de la vieja escuela. Tendría algún tipo de registro & protocolo de descubrimiento integrado en el software del servidor que permitiría que un teléfono se registre en el servidor, consulte una lista de los otros teléfonos actualmente conectados al servidor, indique con qué teléfono quiere hablar, y acepta conexiones de otros teléfonos.

Una vez que sepa quién quiere hablar con quién, su software de servidor los conectará entre sí al leer desde el enchufe de un teléfono y escribir esos datos en el zócalo del otro teléfono.

+0

Puedo manejar defiantemente el registro de la IP de cada dispositivo en un servidor web. Sin embargo, me preocupa lo que dijiste sobre Wi-Fi y posiblemente 3G/probablemente no enrutable. Me gustaría que funcione con el iPod touch, que SOLAMENTE podría conectarse a través de Wi-Fi. Puedo configurar un servidor web. Supongo que cada dispositivo se puede conectar al servidor con un socket (¿persistente?). Simplemente no sé cómo pasar datos entre las dos conexiones/sockets en el servidor. Además, ¿es preocupante que esto sea lo suficientemente rápido? –

+0

También gracias por sus comentarios, siento que el agua se está poniendo menos fangosa. –

+0

OK, edité mi respuesta con más información. En cuanto al rendimiento, dependerá en gran medida de qué tan rápido sea su servidor y cuántas conexiones simultáneas debería manejar. Con un servidor bien implementado, debería ser casi tan rápido como una conexión directa de teléfono a teléfono. –

2

Solo una sugerencia, pero si puede obtener cada uno de ellos para conectarse 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 al teléfono B al teléfono A) y luego haga que se conecten como mejor le parezca.

1

¿Has revisado todas las características 3.0? Específicamente redes de pares (cuya existencia es pública).

+1

igual a 3.0 es WAN y Bluetooth. Tengo los que trabajan solo quiero agregar el tercer nivel –

1

Los enrutadores WiFi a menudo tienen una función llamada "Disparo de puertos" que permite a los hosts internos (en este caso, un iPhone) informar al enrutador que les gustaría tener conexiones en un puerto particular reenviado a ellos. No tengo idea si el iPhone admite este protocolo.

Para consulta de IP se puede considerar el uso de DNS dinámico si los dos anfitriones son conocidos de antemano O como se ha dicho un servicio web personalizado si no lo son (es decir, el intercambio de nombres de host amigos extraños vs. descubriendo entre sí)

0

I tiene una sensación muy fuerte (pero ninguna evidencia) de que la dirección del iPhone no será enrutable. Por supuesto, realmente depende del operador, pero AT & T da direcciones 10.x.x.x.

Apple tiene sample (desktop) code que utiliza Bonjour para implementar la asignación de puertos en un enrutador WiFi compatible con UnPnP.

1

Este es un hilo antiguo, pero acabo de encontrarlo. Puede usar un servidor STUN (o NAT-PMP) para obtener el combo público de dirección IP/puerto y luego enviarlo 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)

1

Me he encontrado con este problema con una aplicación que estaba desarrollando. Estaba intentando conectarme a una tarjeta de celular para PC desde un iPhone. El problema es que AT & 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 & T se conecten entre sí. Esto es directamente desde un ingeniero de antena AT &.

Pude hacer que esto funcione al tener la VPN del iPhone en un servidor y luego conectarla a la tarjeta de la celda de la PC, pero aparte de eso, no funcionaría.

Cuestiones relacionadas