0 votos
Buenos días…
después de mucho pelearme con los ListView, y creo superado este pulso, empiezo a profundizar en el mundo de posibilidades que abre la conectividad vía internet.

El caso es que me he decidido por los sockets (luego espero, por lo menos, pasar a webservices, GCM, etc). El caso es que de momento solo he leído muuucha información al respecto. Y creo que tengo clara la idea. Pero antes de ponerme, tengo una duda que seguro podéis ayudar a solventar.

Veréis… en toda la info y en los ejemplos que he visto, para simplificar siempre han corrido el servidor y el cliente en la misma máquina, o lo que es lo mismo, en la misma red. Por ello, hacer que el cliente se conecte al servidor en una ip 192.168.0.10, por el puerto 5555, es muy fácil. Pero nadie ha puesto el ejemplo de que el cliente y el servidor estén en máquinas distintas y en redes distintas, por lo que decirle al cliente la IP y puerto ya no es lo mismo.

Por ejemplo, imaginad que tengo mi equipo de sobremesa en una red local. El equipo es 192.168.0.10, y pongo ahí el servidor a escuchar el puerto 5555. Claro, este equipo recibe la conexión de internet a través de un router que m eha instalado mi ISP. Ese router tiene un IP que suministra el proveedor y que, desde luego, no es 192.168.xxx.yyy, será otra… p.e. 57.57.57.57 (por decir algo)… ahora cómo digo yo desde el móvil y através de una aplicación cliente que se conecte por sockets a este servidor, qué IP le tengo que decir para que localice el servidor y se conecte???

Por otro lado, entiendo que mi IP provista por el ISP no es estática, por lo que a lo mejor hoy me conecto al servidor, pero si por cualquier causa se reinicia el router, puedo tener otra IP distinta… ¿cómo se soluciona esto?

Gracias y un saludo..
preguntado por Nitram Dic 22, 2014 en Android

1 Respuesta

0 votos
Mejor respuesta

Efectivamente, si intentas conectarte a tu equipo cuya IP es dinámica habrá problemas cuando esta cambie. Lo mejor es tener un servidor (o contratar una IP estática, aunque es más sencillo lo primero).
Para realizar las conexiones a Internet, te recomiendo que empieces con la conexión al servidor normal (puedes ver un ejemplo en http://developer.android.com/training/basics/network-ops/connecting.html), ya que esta se conectará a tu servidor y podrás usar servicios, descargar ficheros, etc.
Te recomiendo que dispongas de un servidor físico (existen opciones gratuitas, y las de pago no suelen ser muy caras las opciones más básicas).

respondido por Jarroba [Admin] Dic 22, 2014
¿Cuando dices tener un servidor propio a qué te refieres? Es que creo que eso es lo que quiero, montar en un equipo de mi red local un servidor al que pueda acceder después desde cualquier red, pero tengo el inconveniente de que mi IP es dinámica…

Aunque pensando, no sé si será una buena solución, podrían enviar notificaciones a los clientes en caso de que la IP cambiase para que la aplicación cliente supiera en todo momento la IP del servidor del que tirará para coger los datos.

Un saludo
Me refiero a un servidor propio es contratándolo. No quiero hacer publicidad por ninguno, pero si pones en Google “hosting” o “contratar servidor” te aparecen un montón de los más famosos de pago, o para probar también puedes buscar por “hosting free”.