Enviando dados pra o servidor

A maioria dos desenvolvedores já passou por uma situação que precisa enviar dados de um dispositivo para um servidor ou entre servidores. Existem "zilhões" de manerias de se fazer isso (EJB, Servlets, Web Services, Sockets, RMI, ....). A maioria dessas soluções, envolve o desenvolvimento ou uso de configurações complexas, em alguns casos aplicações servidoras são pesadas, como um servidor de aplicações. No entanto, em alguns casos, só gerar um arquivo no servidor principal com os dados para que outra aplicação processe, pode ser suficiente.

Para atender esse requisito, criei uma mini aplicação que abre uma conexão socket e grava arquivos em uma pasta especificada. O código está disponível aqui. E quem quiser executar o aplicativo direto é só fazer o download e chamá-lo por linha de comando:

java -jar thiagovespa-socket-utils.jar <HOST> <PORTA> <CAMINHO>

Onde <HOST> é o IP externo do servidor, <PORTA> é a porta que você vai receber conexões e <CAMINHO> é o caminho onde serão gerados os arquivos.

Por exemplo, execute o seguinte comando:

java -jar thiagovespa-socket-utils.jar 127.0.0.1 8090 /tmp

Mude o /tmp para algum diretório seu no Linux ou C:\Diretório no Windows. Aí você pode testar com telnet, por exemplo:

telnet 127.0.0.1 8090
E escrever algo. Você verá que um arquivo será gerado no diretório especificado com o conteúdo escrito no telnet. Ou ainda mais, se quiser ver os dados que o browser envia de requisição para o servidor, você pode digitar o seguinte endereço no browser: http://127.0.0.1:8090
Na sua aplicação é só abrir uma conexão com esse endereço e enviar os dados e o arquivo será gerado. Em breve envio o código de uma aplicação Android que realiza esse tipo de envio.
Sugestões são bem vindas.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6