É por isso que existe NAT.
Você tem de mexer no seu roteador para fazer com que todas as conexões na porta 54321 sejam redirecionadas para o seu endereço de NAT.
Como você faz isso deixo ao pessoal que sabe configurar tais roteadores. (Não é difícil mas você precisa tomar um pouco de cuidado; a configuração, é óbvio, depende:
Do modelo do roteador;
E se você tem a senha do roteador (se não tiver, um abraço).
É claro que há. Você não usa algum software como o eMule, o BitTorrent ou o LimeWire?
Eles usam o protocolo UPNP para fazer essa configuração no roteador, se possível. Com esse protocolo, eles não precisam de senha, mas pode ser que seu roteador tenha o suporte a UPNP desabilitado ou bloqueado.
(Procure por “UPNP” ou “Universal Plug & Play” para mais detalhes).
“A tecnologia Jini foi criada para permitir que qualquer tipo de rede composta de serviços e dos clientes destes serviços seja facilmente montado, desmontado e mantido.”
…na verdade, depois de muitas testes o JINI consegue fazer RMI com o “NAT\Firewall transversal” … bem distante do q quero.
Alguém pode me dar alguma dica de como fazer um SocketServer e um SocketCliente se comunicarem sendo q existe a possibilidade de um do Server estar atrás de um NAT!?
Se somente um deles q esta atras de Nat, entao faça a maquina q esta como Nat liberado ser o servidor, pois somente eh necessário liberar a porta Nat na conexão servidora. As conexões clientes não há a necessidade tb de liberação. Do mesmo jeito q o msn, google talk, eles sao as conexões clientes e eles nao precisam liberar porta para fazer a conexão com o servidor da Microsoft ou Google. Somente lá nestes servidores q há esta porta liberada!!!
Mas esse é o caso de um sistema centralizado onde todos os clientes se reportam a um servidor mór. Funciona perfeitamente, independente de NAT ou firewall no cliente.
Mas e no caso de um serviço decentralizado, como o gnutella? Um cara na Alemanha liga seu software e pega um conjunto de IPs de outros usuários (clientes\servidores) e se conecta num usuário atrás de uma NAT no Brasil totalmente transparente. Isso é fantástico!! Não consigo conceber um código pra tal funcionalidade?
Cada nó (usuário) é um cliente e servidor que pula a NAT sem problemas… Alguma idéia?