private void lanzaRequest(object objeto_peticion) { //# Libera recurso para que se ejecute el multi-threading: Thread.Sleep(1); //# Flag para cantidad de threads: Intercambio.cantidad_threads_activos++; Peticion peticion = (Peticion)objeto_peticion; string json_ip_destino = peticion.ip_destino.Split(':')[0]; int json_puerto_destino = Convert.ToInt32(peticion.ip_destino.Split(':')[1]); int json_intentos = peticion.intentos; //# Verifica datos básicos para lanzar el request: if ((Regex.IsMatch(json_ip_destino, @"(?:[0-9]{1,3}\.){3}[0-9]{1,3}")) && (Regex.IsMatch(Intercambio.ip_origen, @"(?:[0-9]{1,3}\.){3}[0-9]{1,3}"))) { //# Crea objeto UDPRequest y lanza peticiones: try { UDPRequest request = new UDPRequest(Intercambio.interfaz, Intercambio.ip_origen, Intercambio.puerto_origen, Intercambio.mac_origen, json_ip_destino, json_puerto_destino, Intercambio.mac_destino, json_intentos); request.EnviaMensaje(peticion.paquete); } catch { Intercambio.cantidad_excepciones++; } } //# Flag para cantidad de threads: Intercambio.cantidad_threads_activos--; }