Hilos que tardan mucho

Luis Orellana Orihuela luis.ore.ori en gmail.com
Vie Feb 29 10:09:45 CET 2008


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?
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es