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.