Transmissao de Arquivos

Qual seria a melhor forma de se tranferir um arquivo entre dois hosts via internet em um programa Java? Obs: nao sei se importa, mas os arquivos sao binarios.

Abraco a todos do GUJ !

forma não segura: ftp, upload http
forma segura, sftp, ou connecção direta com ssl

Valeu Rodrigo, mas se alguem tiver algum pequeno programa de exemplo seria otimo. O que preciso fazer é um programa (servidor) que fique aguardando conexao de um (somente um) cliente, receba o arquivo e continue aguardando outros arquivos. Ja li o tutorial aqui no GUJ sobre sockets que me deu uma ideia do assunto, mas nele sao transferidas apenas mensagens (Strings).

em um programa Java, pra que vc vai usar ftp ou http?? Abre um Socketao e pronto… a partir da JVM 1.4, vc pode usar SSL direto sem problemas…

aí entram, claro, questoes do tipo “em que porta eu escuto?”, e por aih vai…

Se os dois programas precisam dos dados do arquivo, em vez do arquivo em si, essa pode ser uma saída ainda melhor… mas aih, te aconselho e enviar objetos pelo socket, em vez do arquivo…

De qq forma, se vc tem sockets pra lá e pra cá, vários arquivos sendo transmitidos ao mesmo tempo, etc, dá uma olhada nos Channels…

se vc tá no esqueminha client-server, e seu servidor só recebe o arquivo, vc pode usar os InputStreams direto…

o lado ruim de usar sockets direto é que vc vai ter que criar seu próprio protocolo… o lado bom é que vc nao tem que obedecer protocolo nenhum…

tem muitas outras variáveis pra considerar aih, é difícil dar uma resposta direta…

mas de qq forma, boa sorte!!