package Multicast;
import java.io.IOException;
import java.net.DatagramPacket;
public abstract class MulticastReceivingThread extends MulticastThread
{
protected MulticastReceivingThread(int port, String ip_group)
{
super(port, ip_group);
}
@Override
public final void run()
{
while (true)
{
try
{
byte[] buf = new byte[getDataMaxSize()];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
this.getSocket().receive(packet);
this.handleDatagram(packet);
this.waitBetweenReceive();
}
catch (IOException e)
{
try
{
this.clearSocket();
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
catch (InterruptedException e)
{
return;
}
}
}
public abstract int getDataMaxSize();
public abstract void handleDatagram(DatagramPacket packet);
public abstract void waitBetweenReceive() throws InterruptedException;
}