Socket com Java em redes diferentes

Olá,amigos
Procurei pelo fórum e não encontrei, e em todos materiais que vi sobre o ensino de sockets, as aplicações cliente e servidor sempre estão na mesma rede. Usando o exemplo mais comum de chat, como eu faria para ter o meu servidor rodando conectado numa rede A, e enviar mensagens para ele de aplicações clientes estando numa rede diferente B ? Obrigado, desde já.

Se vc for colocar em um servidor, ele precisará possuir um IP válido, nesse caso os cliente farão conexão neste IP.
Se você utilizar internet residencial precisará configurar o roteador para direcionar as conexões para o IP do servidor, nesse caso os clientes irão conectar no IP do roteador e ele enviará as solicitações para o servidor dentro da rede.

Você deve primeiramente ter o Aplicação Servidor que irá fazer o handle dos dados rodando, daí deve configurar o seu roteador para que ele enxergar o seu servidor e redirecionar as solicitações para a porta local dele, daí vc tem que liberar uma porta para a internet, por onde os clientes irão poder fazer as requisições.

Mas isso é arriscado em termos de segurança e depende do contexto e qualidade dos equipamentos.

Nesse caso, a aplicação Java não muda em absolutamente nada. O que você tem que fazer é configurar a rota da rede onde está o client para a rede em que está o server, e vice-versa.

1 curtida