Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - lovita

#1
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   
#2
Scripting / hilos en python que tardan mucho
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 !