/*Hjälp klass till JFinder en av 3 yttre klasser */ /*ska ta emot signalerna a'la uppg 4*/ import java.util.*; import java.net.*; import java.io.*; class Receiver extends Thread{ private boolean online=true; private HashSet messages, saml; //tillåter ej dubbletter!!!!!!!!!! private JFinder jf; private MulticastSocket mcs; //ta emot referenserna start run metoden public Receiver(MulticastSocket mcs, JFinder jf){ this.mcs=mcs; this.jf=jf; this.start(); } //startar mottagningen packar ner i datagrampaket public synchronized void run(){ try{ byte[] buffer = new byte[65507]; //storlek på buffer while (online) { sleep(1000); boolean samla = true; messages = new HashSet(); while(samla){ DatagramPacket dp = new DatagramPacket(buffer, buffer.length,jf.getInet(), jf.getPort()); mcs.receive(dp); String s = new String(dp.getData(), 0, dp.getLength()); samla = messages.add(s); }}} catch (IOException e) { System.err.println(e); } catch(InterruptedException ie){ System.err.println(ie); } } //för att fånga upp sleep!!!!! public void setOffline(){ online=false; } public ArrayList getMessages(){ return new ArrayList(messages); } }//Receiver