elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  hilos en python que tardan mucho
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hilos en python que tardan mucho  (Leído 2,767 veces)
lovita

Desconectado Desconectado

Mensajes: 2


Ver Perfil
hilos en python que tardan mucho
« en: 13 Marzo 2008, 09:06 am »

Hola a todos,

Tengo una aplicación en la que envío el mismo mensaje a un conjunto de PC's.

Uso un hilo por cada socket a enviar:

> import thread
> ....
> ...
> ...
>
> for ip in ips: #ips es una lista con las ips destino
> thread.start_new(envia_socket,(ip,puerto,mensaje))
>

La función envia_socket sólo se dedica a enviar el mensaje al destino:

> def envia_socket(servidor,puerto,msg):
>
> s=socket(AF_INET,SOCK_STREAM) #creamos socket tipo TCP/IP
> #s.settimeout(20)
> try:
> s.connect((servidor,puerto)) #nos conectamos al servidor
> s.send(msg)
> s.close() # cerramos conexion
> envio_ok.append(servidor)
> except timeout:
> error1.append(servidor)
> except error: # si error capturamos excep
> error2.append(servidor)
>

El problema es que si envío un mensaje a un sólo equipo y el pc está apagado el socket intenta conectar durante unos 20 seg. En cambio si se lo mando a unos 30 equipos y estos está apagados la ejecución se demora hasta pasar el minuto. Si uso threading me ocurre lo mismo. Y si establezco un settimeout he de poner un tiempo elevado para que recorra todos los equipos.

No sé si estos tiempos son normales, pero si son procesos en pararelos ... ¿no debería tardarme aproximadamente lo mismo en enviar a un equipo que a varios? Creo que algo hago mal, a ver si pueden ayudarme. Gracias !


En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


Ver Perfil
Re: hilos en python que tardan mucho
« Respuesta #1 en: 14 Marzo 2008, 00:19 am »

Bienvenido, lee las normas y usa las etiquetas de código, porque si no ya ves que sale bastante mal. Prueba a hacer esto:

Código
  1. import thread
  2. ....
  3. ...
  4. ...
  5.  
  6. for ip in ips: #ips es una lista con las ips destino
  7.  thread.start_new(envia_socket,(ip,puerto,mensaje))
Código
  1. def envia_socket(servidor,puerto,msg):
  2.  print 'inicio', servidor
  3.  s=socket(AF_INET,SOCK_STREAM) #creamos socket tipo TCP/IP
  4.    #s.settimeout(20)
  5.    try:
  6.      s.connect((servidor,puerto)) #nos conectamos al servidor
  7.      s.send(msg)
  8.      s.close() # cerramos conexion
  9.      envio_ok.append(servidor)
  10.    except timeout:
  11.      error1.append(servidor)
  12.    except error: # si error capturamos excep
  13.      error2.append(servidor)
  14.  print 'fin', servidor

Sólo para ver qué pasa.


En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
lovita

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: hilos en python que tardan mucho
« Respuesta #2 en: 14 Marzo 2008, 09:46 am »

Gracias, y ... siento lo del código, no se volverá a repetir.

Al ejecutar ahora el código, primero se imprimen rápida y ordenadamente todos los 'inicio' servidor, posteriormente y desordenadamente los 'fin' servidor, y en esto es lo que se lleva más tiempo, además, los 'fin' servidor se imprimen como en grupos de tres o cuatros seguidos se lleva un tiempo procesando y vuelve a imprimirse otro bloque, así hasta recorrer todos los servidores.  :o   
En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


Ver Perfil
Re: hilos en python que tardan mucho
« Respuesta #3 en: 14 Marzo 2008, 23:44 pm »

Entonces el problema no son los hilos, que se crean todos a la vez, sino el límite de conexiones, que dices que es 3 o 4. O eso es lo que deduzco de la traza, python lo he usado lo justo.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Hay mucho en común entre Php y Python?
Programación General
LisandroCreta 6 3,921 Último mensaje 1 Abril 2011, 08:59 am
por LisandroCreta
ventanas tardan en cargar
Windows
halseq 6 4,185 Último mensaje 14 Septiembre 2012, 01:13 am
por Eleкtro
Hilos en python algo que no entiendo
Scripting
eliander20 2 3,107 Último mensaje 21 Mayo 2017, 04:44 am
por tincopasan
Problema con python, multi-hilos y mysql
Scripting
zagk 0 2,410 Último mensaje 29 Junio 2017, 22:46 pm
por zagk
Python ayuda hilos para hacer ping a todas las ips
Scripting
MetaNoia 0 3,451 Último mensaje 24 Noviembre 2019, 22:08 pm
por MetaNoia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines