HOME PCB
..ReceivingDatagramThread.javaSendingDatagramThread.javaUDPMessageService.javaUDPSession.java
package Communication.Messages.UDP;

import Communication.Messages.Service.MessageService;

import java.net.DatagramSocket;

public class UDPMessageService extends MessageService
{
    private final DatagramSocket sock;

    public UDPMessageService(int port)
    {
        try
        {
            this.sock = new DatagramSocket(port);
        }
        catch (Exception e)
        {
            throw new RuntimeException(e);
        }
    }

    @Override
    protected ReceivingDatagramThread startReceiver()
    {
        ReceivingDatagramThread receivingThread = new ReceivingDatagramThread(this.sock);
        receivingThread.start();
        return receivingThread;
    }

    @Override
    protected SendingDatagramThread startSender()
    {
        SendingDatagramThread sendingThread = new SendingDatagramThread(this.sock);
        sendingThread.start();
        return sendingThread;
    }

    @Override
    protected void finalize() throws Throwable
    {
        if (!this.sock.isClosed())
        {
            this.sock.close();
        }
        super.finalize();
    }
}