Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cryteck

Enviar objects para um grupo multicast

Recommended Posts

cryteck

Boa noite pessoal é o seguinte.

Imaginemos que temos um server multicast que está a espera de clientes.

O que eu queria fazer era que o servidor enviasse para todo o grupo multicast um objecto construido por mim .

Falando do problema em concreto:

o servidor tem uma uma lista de ficheiros a partilhar com os clientes (objecto criado por mim - array list de files).

o que eu queria era partilhar essa lista com todos os clientes..

Será que dá para enviar o object (array list de files) por um datagrampacket para todo o grupo multicast (multicast socket) ou qual será a melhor maneira de partilhar a lista de files com todo o grupo multicast ?

Obrigado desde já...

Share this post


Link to post
Share on other sites
Rui Carlos

Em princípio só precisas de serializar o ArrayList, mas tudo depende dos objectos que este armazena. Se os ficheiros estiverem representados por strings, até podes enviar as strings uma por uma.

Share this post


Link to post
Share on other sites
cryteck

Ok já consegui fazer mas mais uma coisa.

A lista de files é o elemento mais importante do trabalho e tenho de a enviar a todos os utilizadores k se conectem.

Pensei enviar a lista por um multicast socket para todos os elementos receberem mas como todos sabemos por udp os packets sao perdidos facilmente e isto nao pode falhar pois é um elemento crucial no trabalho.

Como poderei resolver isto pois todos tem de receber a lista sem flalhas ... Opinioes urgentes sao precisas ?

Obrigado

Share this post


Link to post
Share on other sites
cryteck

ok mas entao devo enviar a lista cliente a cliente atraves de socket tcp ip .... Entao se estou compreender devo ter uma list de clientes e armazenar o seu ip e fazer conexao um a um enviando a lista será isso ?

È que no meu caso é um sistema p2p numa rede multicast em que cada peer partilha e faz download de files e cada peer é cliente e servidor ao mesmo tempo ....

Obrigado

Edited by cryteck

Share this post


Link to post
Share on other sites
HappyHippyHippo

um sistema de transmissão de ficheiros em multicast em UDP ?

tens a noção que tens a probabilidade de 99.99999% de teres um erro de transmissão algures no futuro certo ?

UDP não serve para isso. se queres montar a rede com multicast, ok, montas a rede, mas a transmissão dos ficheiros terá de ser sobre a rede e não na rede multicast.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
cryteck

ok sim tens razao .... A rede tem de ser montada com multicast a transferencia de ficheiros é feita atraves de tcp assim tá correto ... O outra duvida já ouvi dizer que objectoutputstream nao é muito fiavel que dizes ?

Se fosses tu a fazer como partilhavas uma lista de ficheiros partilhados de cada cliente com os restantes que depois apartir da lista enviada por cada cliente é criada uma lista" geral" para depois com essa lista geral fazer ligações tcp para o download do ficherio requerido por um peer....

Ou seja casa peer partilha os seus ficheiros. A lista geral é constituída pelos ficheiros de todos os peers. Depois um peer escolhe um file da lista geral e liga se por tcp ao peer que tem o ficheiro escolhido e faz download ....

obrigado

Edited by cryteck

Share this post


Link to post
Share on other sites
FilhoDoSol

O ObjectOutputStream não tem problema nenhum. Não ligues o que ouviste.

Se queres partilhar ficheiros usa TCP, porque tens de garantir a integridade do ficheiro.

UDP serve para transmitir informação mais rápido, mas fá-lo à custa da perda de integridade. É util por exemplo em Streams de TV, jogos tempo-real etc.

Por exemplo (simplificado) numa stream de um jogo de futebol: imagina que o pacote que continha a imagem do minuto 32:15segundos é enviada. Se não a receberes "instantaneamente" já não te interessa receber daqui a 5 segundos (já imaginaste estares a ver o lance a seguir e de repente aparecer a imagem do lance que se passou 5 segundos antes?)

Edited by FilhoDoSol

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.