Srs.
Estou com um problema que envolve comunicação com UDP, usando DatagramSocket e DatagramPacket. Tenho a seguinte situação, um processo deve enviar n mensagens para os n integrantes de um grupo de comunicação e após envio de todas, ficar bloqueado esperando as respostas e processá-las.
tenho uma classe Processo, que dentre outras coisas, tem o seguinte código:
public class Processo {
private DatagramSocket sck;
private DatagramPacket send;
public Processo() {
try {
this.sck = new DatagramSocket(this.porta);
new Receiver(this.sck);
} catch (Exception e){
}
}
}
A classe Receiver é uma Thread que escuta a chegada dos pacotes.
public class Receiver extends Thread {
private DatagramSocket sck;
public Receiver(DatagramSocket sck) {
this.sck = sck;
this.start();
}
public void run() {
byte dados[] = new byte[21];
DatagramPacket msg = new DatagramPacket(dados, dados.length);
while (true) {
try {
sck.receive(msg);
} catch (Exception e) {
}
}
}
}
O que eu precisa é que na chegada de uma mensagem a um processo na classe Receiver, esta notifique a classe Proccess para que realiza os processamento devidos na chegada de uma mensagem.
Como posso fazê-lo? Alguma sugestão…eu conseguindo acompanhar o envio da mensagem e o recebimento nas portas de comunicação, porém resta somente concluir esta última parte da interação. Ajuda serão muito bem vinas. 