DatagramSocket.receive() Dúvida

2 respostas
BrunoBastosPJ

Estou com um problema aqui e não sei se o que penso em fazer vai ser a melhor solução. Tenho um DatagramSocket que chama o método receive que é bloqueante! E tenho várias threads que enviam bytes para essa máquina. Na verdade só consigo receber o valor de uma dessas threads, porque pelo que parece quando o método recebe um array de bytes de uma thread ele descarta os dados das outras threads que estão tentando enviar. Minha dúvida é, como devo fazer para receber esses dados de várias threads? Devo abrir outra thread na recepção? Para cada array recebido eu abro uma thread nova, desta forma o método receive continua funcionando e eu posso trata o meu array recebido?

Valeu!

2 Respostas

I

Uma sugestão é tu criar uma fila de processos (com tuas threads) para despachar o conteúdo, uma após a outra. Dê uma olhada no pacote java.util.concurrent mais especificamente PriorityBlockingQueue

T+

BrunoBastosPJ

Opa iktuz, eu esqueci de mencionar, eu trabalho com grades. Não tenho o controle das threads porque elas estão em máquinas diferentes e não na mesma maquina. Tenho que fazer o controle no próprio recebimento, porque no envio não tenho essse controle

Valeu []'s

Criado 6 de dezembro de 2006
Ultima resposta 6 de dez. de 2006
Respostas 2
Participantes 2