Hola a todos.
Tengo una duda y necesito ver si alguno puede ayudarme.
Resulta que me he estado preguntando mucho tiempo cómo hacer conexiones entre programas cliente-cliente/cliente-servidor pero sin necesidad de que ese cliente no tenga que abrir ningún puerto.
Me explico. Yo mis programas los puedo hacer con sockets y funcionan perfectamente en red local. Pero si la red es externa entonces el cliente y el servidor tendrían que abrir una redirección de puertos a la máquina que corre el programa. Funciona perfectamente.
Mi gran duda es la siguiente:
Os pondré como ejemplo el programa TeamViewer. TeamViewer hace conexiones cliente-cliente o cliente-servidor. Al margen del método, un cliente puede conectar con un servidor perfectamente ya que el servidor es el que tiene que estar preparado con los puertos abiertos, pero pero cuando el servidor contesta al cliente, dicho cliente no tiene por qué hacer ninguna redirección de puertos ni nada. Me explico?
Lo que quiero saber es cómo hacer conexiones entre programas en máquinas de redes externas sin necesidad de abrir puertos o hacer cosas que el usuario no tiene por qué saber hacer.
Muchas gracias.