public void runProtocoloDHCP() {
		try {
			// DHCPMessage messageIn = new DHCPMessage();
			byte[] datos = new byte[1024];
			DatagramPacket messageIn = new DatagramPacket(datos, datos.length);

			socket.receive(messageIn);

			pack = new PaqueteDHCP(messageIn.getData());

			switch (pack.existInOption(53).getIntValue()) {
			case PaqueteDHCP.DISCOVER:
				System.out.println("DISCOVERY "
						+ pack.getStringHexa(pack.getCHADDR()));
				DHCPlog.reportar("Recibido DISCOVERY de: ["
						+ pack.getStringHexa(pack.getCHADDR()) + "] || FECHA: "
						+ new Date());

				try {
					manejarDiscovery();
				} catch (NoRouteToHostException e) {
					// TODO Auto-generated catch block
					System.err
							.println("No pudo ser mandado: " + e.getMessage());
				}
				break;
			case PaqueteDHCP.REQUEST:
				System.out.println("REQUEST "
						+ pack.getStringHexa(pack.getCHADDR()));
				DHCPlog.reportar("Recibido REQUEST de: ["
						+ pack.getStringHexa(pack.getCHADDR()) + "] || FECHA: "
						+ new Date());
				manejarRequest();
				break;
			case PaqueteDHCP.DECLINE:
				System.out.println("DECLINE "
						+ pack.getStringHexa(pack.getCHADDR()));
				DHCPlog.reportar("Recibido DECLINE de: ["
						+ pack.getStringHexa(pack.getCHADDR()) + "] || FECHA: "
						+ new Date());
				manejarDecline();
				break;
			case PaqueteDHCP.RELEASE:
				System.out.println("RELEASE "
						+ pack.getStringHexa(pack.getCHADDR()));
				DHCPlog.reportar("Recibido RELEASE de : ["
						+ pack.getStringHexa(pack.getCHADDR()) + "] || FECHA: "
						+ new Date());
				manejarRelease();
				break;
			case PaqueteDHCP.INFORM:
				System.out.println("INFORM "
						+ pack.getStringHexa(pack.getCHADDR()));
				DHCPlog.reportar("Recibido INFORM de : ["
						+ pack.getStringHexa(pack.getCHADDR()) + "] || FECHA: "
						+ new Date());
				manejarInform();
				break;
			default:
				System.out.println("Mensaje desconocido");
				DHCPlog.reportar("Mensaje recibido es desconocido... Ignorando...");
				break;
			}
		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
		}
	}