estou precisando fazer um protocolo de rede em java, mas não sei como… não é uma coisa tão complexa, neste caso, é você fazer a comunicação entre dois programas, num mesmo computador, como por exemplo enviar um arquivo .txt de um programa para outro, só isso, é como se fosse uma simulação. Gostaria de saber se alguém já fez algo parecido que pudesse me ajudar. Já andei olhando na API e achei uma classe Pipe e a interface ByteChannel, tive algumas idéias, mas muito superficial ainda. Conto com a ajuda de vocês.
Se é o que entendi você pode fazer uma comunicação entre dois porgramas através de sockets o java possui duas classes que podem auxiliar a fazer isto ServerSocket e Socket. Mas se sua intensão é realmente criar um protocolo de rede recomento estudar mais a fundo com funciona uma rede e implementar-lo diretamente.
M
maviPJ
Exato…
Voce pode estar criando um ServerSocket em cada uma das maquinas e ouvindo em uma porta (para que ambas as maquinas estejam aptas a receber pedidos de conexao na porta X)…
Assim qualquer um dos hosts pode dar a louca de enviar o arquivo pro outro a hora que quiser…
Tendo um host “ouvindo” na porta (ServerSocket) voce no outro host abre um Socket naquela porta do outro host…e se comunica usando streams.
A classe Socket te retorna um stream, a partir dali voce faz o que quiser…
Pra enviar qualquer tipo de dado, voce precisa de um protocolo (senao quando sabera que o arquivo acabou? etc etc)…o protocolo voce pode usar sua imaginacao…
Enfim…imagine computador A e B
A = ServerSocket na porta 3000
B = conecta Socket na porta 3000 do A
B > A “NEW FILE”
A > B “READY”
B > A “ddkklçjsdlfdkljjkdjksdlf” << conteudo do arquivo
B > A “END_OF_FILE”
A > B “OK”