public void run()
	{
		while (true)
		{
			try
			{
				byteArray = new byte[1024];
				receivePacket = new DatagramPacket(byteArray, byteArray.length);
				ds.receive(receivePacket);
				String data = new String(receivePacket.getData(), "UTF-8")
						.trim();
				st = new StringTokenizer(data, Protocol.DELIMITER);
				String request = st.nextToken();
				if (request.equals(Protocol.GET_JOIN))
				{
					request = st.nextToken();
					if (request.equals(Protocol.GET_JOIN_USERNAMETAKEN))
						cc.connectionStatusError("Username taken");
					if (request.equals(Protocol.GET_JOIN_ACCEPT))
						cc.connectionStatusOK();
					if (request.equals(Protocol.GET_JOIN_DECLINED))
						cc.connectionStatusError("Your request was declined");
				}
				else if (request.equals("MSG"))
				{
					String from = st.nextToken();
					String message = "";
					while (st.hasMoreTokens())
						message += st.nextToken() + " ";
					cc.addPrivateMessage(from, message);
				}
			}
			catch (IOException e)
			{
				ds.close();
				break;
			}
		}
	}