Eu escrevi o código Java para um servidor TCP simples que deveria rotear dados de um cliente mestre para um cliente escravo sem armazená-lo. O código está funcionando ao testar em localhost e isso não é um problema aqui, pois posso alterá-lo conforme necessário. Eu posso até escrever em outro idioma.
Eu tentei enviá-lo para a AWS, mas, por algum motivo misterioso, nenhuma instância que criei está disponível para conexão com qualquer computador que eu tenha acesso, mesmo que eu tenha seguido o tutorial em seu site (ele diz 'conexão recusada' ou 'conexão expirou' dependendo do SO que eu tente conectar se a instância for baseada em Linux ou se a área de trabalho remota não estiver disponível se a instância for baseada em Windows).
Não tenho certeza se seria capaz de hospedá-lo porque não tenho acesso às configurações do roteador para possibilitar o encaminhamento de porta. Além disso, tentei usar ferramentas como o ngrok para tunelamento de portas sem sucesso.
Estou perguntando quais são as maneiras mais fáceis de disponibilizar um servidor TCP para a Internet, pois preciso acessá-lo de fora da minha própria rede (especificamente, de um aplicativo para Android, por meio do GPRS). Se houver uma maneira sem servidor, posso encaminhar dados do mestre para o escravo, o que também seria apreciado.
fonte