Ho fatto il procedimento :
Is Correct ?
per 5 secondi ricevo pacchetti :
codice:
public ArrayList riceviPacchetti(){
ArrayList<DatagramPacket> list = new ArrayList<DatagramPacket>();
try{
Msocket.joinGroup(groupAddress);
Msocket.setSoTimeout(5000);
byte [] buf = new byte [128];
DatagramPacket packet = new DatagramPacket(buf , buf.length);
Msocket.receive(packet);
list.add(packet);
}catch(Exception err){
err.printStackTrace();
}
return list;
}//RICEVI PACCHETTI
poi ricavo un pacchetto a caso dalla lista , determino l'indirizzo e spedisco la richiesta a quell'indirizzo :
codice:
public static void main (String [] args){
try{
InetAddress groupAddress = InetAddress.getByName("224.0.0.0");
int multicastPort = 5000;
int TCPPort = 2000;
Client client = new Client(groupAddress , multicastPort , TCPPort);
client.inviaPacchettoVuoto();
ArrayList<DatagramPacket> lista = client.riceviPacchetti();
int size = lista.size();
DatagramPacket packet2 = lista.get((int)Math.random()* size);
InetAddress HAddress = packet2.getAddress();
client.inviaRichiesta("ciao" , HAddress);
}catch(Exception err){
err.printStackTrace();
}
}