HOME PCB
..MulticastHello.javaMulticastJsonObject.javaMulticastJsonReceivingThread.javaMulticastJsonSendingThread.javaMulticastObject.javaMulticastReceiveSingleObject.javaMulticastReceivingThread.javaMulticastSendingThread.javaMulticastThread.javaMulticastWebProgram.java
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;
}