public void run()
	{
		while(true)
		{
			try {
				byteArray = new byte[1024];
				packet = new DatagramPacket(byteArray, byteArray.length);
				mSocket.receive(packet);
				String data = new String(packet.getData(), "UTF-8").trim();
				st = new StringTokenizer(data.trim(), Protocol.DELIMITER);
				String request = st.nextToken();
				if(request.equals(Protocol.GET_PING))
					sendPing(Protocol.SEND_PING+Protocol.DELIMITER+username);
				else if(request.equals(Protocol.GET_CLIENTLIST))
				{
					while(st.hasMoreTokens())
						clients.add(st.nextToken().trim());
					clientGUI.updateClientList(clients);
					clients.removeAll(clients);
				}
				else
				 	clientGUI.addMessage(data.trim());
			} catch (IOException e) {
				System.out.println("Unable to receive Multicast");
				e.printStackTrace();
				break;
			}
		}
	}