Socket, Enviando Arquivos, Trocando mensangens

8 respostas
P

Sou iniciante na parte de socket de java… Estou querendo fazer um programa P2P bem simples…
Cada par se comportará tanto como servidor como cliente.
Minha duvida é a seguinte:
1.Tenho um servidor e o cliente se conecta nele. (Uma conexão é criada).
2. Atraves da conexao criada em 1, o cliente requisita um arquivo

  1. E agora? O cliente abre uma nova conexao com o servidor para trocar o arquivo? O servidor envia o arquivo pela mesma conexao o arquivo?
    Enfim como proceder? Criar uma nova conexão para cada arquivo e deixar a conexao de controle(envio de comandos, requisicoes) aberta?

Obrigado

8 Respostas

71C4700

Bem !! :lol:
Tambem estou fazendo um trabalho e queria que os clientes se comunicasem um com o outro ( P2P), sem que fosse necessário passar pelo servidor
pois sobrecarregaria muito o seu serviço

Tentei usar algo do tipo do observer, para poder controlar a entrada e saida pelo Socket!!
Desde ja agradeço qualque ajuda tambem
Bem é isso !!! :roll:

lucamartins

Neste caso seria um socket por cliente. Não é simplesmente conectar e transmitir o arquivo, pq tem toda uma implementação por trás. Nesses softwares P2P eles pegam o arquivo e divitem em varias pedaços de tamanho pré-definido. O cliente sabe que pedaço ele quer receber do server, logo a requisição seria através de um socket, onde o cliente diria me dê o pedaço y do arquivo x. Acredito que se vc procurar na net alguns RFC ( Request for Comments ) vc encontrará o protocolo de como essas requisições são feitas. Isso pode ser feito por várias threads, mas um único socket por cliente.

att.

Link_pg

Olá!

Da uma olhada no Design Patter Proxy, ele vai ser bem útil…

Abraços

71C4700

[b]Bem, desculpa a ignorancia ou inesperiencia na linguagem, mas alguem teria um exemplo, ou como posso criar uma apliação P2P, pois a parte de conexão com o servidor, e envio de mensagem em broadcast, já consegui. Mas eu queria enviar uma mensagem para um unico cliente, sem ter que passar pelo servidor, criar um canal de comunicação entre os dois ou mais clientes que tivessem em contato naquele canal de comunicação!
[i][color=blue] Desde já agradeço pela atenção [/color]

Link_pg

Olá!

Sempre há um servidor e um cliente… se um cliente recebe conexões ele não deixa de ser um servidor e tem que ter um tratamento especial para essas conexões (como um servidor)…

Abraços

71C4700

Bem !
Novamente venho pra esclarecer a minha duvida.
Quando os clientes se conectarem com o servidor, queria que fosse possivel eles se comunicarem sem ter que passar pelo servidor , ala ua comunicação P2P, pois o servidor iria ficar muito sobrecarregado. Outra Se eu tornar um deles servidor, teria que espera o outro se conecta para que fosse possivel a comunicação entre eles, já que desejo uma comunicação pelo protocolo TCP.
Mas desde já agradeço pelas ajudas !

lucamartins

Cara, o servidor vai apenas aceitar a conexão. Depois um novo objeto, normalmente uma que herda Thread, recebe este socket criado e cuida das transações com o socket, assim não passa mais no socket server.

71C4700

Bem, venho agradecer pelo apoio e ajudaprestada neste forum foi de grande auxillio pra conclusão deste trabalho !
Obrigado

Criado 13 de abril de 2007
Ultima resposta 9 de mai. de 2008
Respostas 8
Participantes 4