Si puedes establecer comunicaciones, tener servidores y prácticamente utilizar cualquier aplicación que necesite puertos abiertos sin abrir puertos. Necesitas un servidor externo/proxy de intermediario. Hay muchas formas de implementarlo depende del tráfico que sea. Una de las más sencillas es
tunelar por
HTTP todo el tráfico utilizando
base64. No es lo más óptimo ya que agrandas el tráfico, pero si lo más sencillo, ya que no te cargas el encapsulado.
Lo más lógico es que mantengas una conexión abierta en vez de el clásico enviar petición cerrar conexión que se usa más asiduamente con este protocolo.
Conexión Persistente HTTPDepende el tipo de tráfico y lo que necesites puedes usar un
hosting gratuito, o trendrás que usar un
VPS ya que si bien el protocolo HTTP te permite establecer conexiones y dejarlas abiertas, otro software como pueda ser
Apache o
PHP cierran las conexiones automáticamente cada 15 y 30 segundos respectivamente para optimizar los servicios. Esto se puede configurar si tu hosting o VPS te lo permiten. Apache
Directiva KeepAlive, PHP
Tiempo Maximo de Ejecución.
Si quieres correr un cliente en Android en el background o cualquier app para mantener la conexión vas a tener que pelearte con el
Garbage Collector. El
GC de Android te puede cerrar la conexión asique necesitarás manejarlo. Puedes hacer una copia en PHP y en onStop abrir otra instancia que abra una nueva comunicación e informar al PHP para volver a retrasmitir desde el bloque perdido. Hay otras alternativas. Por ejemplo utilizar el modo multiventana o mejor aún un Launcher desde el que hagas intents a tus aplicaciones de uso normal mientras corres el cliente/servidor en la misma instancia.
Técnicamente realizar esta configuración de esta forma es bastante sencillo. No es ni de cerca lo más óptimo que se puede hacer, pero sin tener muchos conocimientos y teniendo tiempo te sirve para salir del paso. También tiene sus ventajas. Puedes procesar el tráfico antes de recibirlo, automatizar cosas, responder automáticamente, un firewall custom para solicitudes no deseadas, bases de datos con el tráfico y no necesitas mostrar la IP. A parte te sirve para todo tipo de tráfico. Puedes alquilarle el servicio a amigos.