@Override
	public void run() {
		Thread.currentThread().setName("Multicast Monitor");
		byte[] buffer = new byte[1024];
		byte[] temp;
		DatagramPacket dpack = new DatagramPacket(buffer, buffer.length);
		SmallPacket dp;

		while (true) {
			try {
				mSock.receive(dpack);
				
				temp = new byte[dpack.getLength()];
				
				System.arraycopy(dpack.getData(), dpack.getOffset(), temp, 0, dpack.getLength());
				
				dp = new SmallPacket(temp);
				
				received.receive(dp, (Inet4Address) dpack.getAddress());
			} catch (IOException e) {
				e.printStackTrace();
			} catch (DatagramDataSizeException e) {
				e.printStackTrace();
			} finally {
				buffer = new byte[1024];
				dpack = new DatagramPacket(buffer, buffer.length);
			}
		}
	}