[Python-es] raro problema con hilos

xiao xiong mao panda rojo ailurus.fulgens en hotmail.com
Mie Ago 29 00:15:50 CEST 2012


hola ch3m4
hice algunas pruebas
agrege el "shutdown" en mi cliente antes de "close"
no hay diferencia

me di cuenta k "socket_cliente.recv(4) "
el "4" es el numero de bytes, pensé k era de bits
cambie el largo de la cadena
la longitud no importa, mayor o menor; mismo problema

cambiar el timeout me dio una pista
ni mi server (server = socket.socket(socket.AF_INET, socket.SOCK_STREAM))
o mi socket_cliente (socket_cliente, datos_cliente = server.accept())
ni mi programa de envio (s = socket.socket(socket.AF_INET, socket.SOCK_STREAM))
ninguno tiene un atributo llamado .timeout()
me imprime un error con cada uno
solo si llamo socket.timeout() funciona. pero asi no le estoy dando el dato a los objetos con lo que estoy trabajando

pero paso algo interesante. incluso la impresion de errores necesita k ocurra algún evento.
y si hago "print mensaje,"mensaje recibido" "
primero imprime la variable mensaje y unos eventos después la cadena "mensaje recibido" y mas eventos después se actualiza la ventana

parece k el problema es k el hilo no se ejecuta libremente. se queda esperando una oportunidad de ejecutarse o algo así
es muy raro
luego investigare mas sobre hilos y otras formas de iniciar un nuevo hilo

gracias por responder


> Date: Tue, 28 Aug 2012 10:00:21 +0200
> From: pych3m4 en gmail.com
> To: python-es en python.org
> Subject: Re: [Python-es] raro problema con hilos
> 
> El día 28 de agosto de 2012 00:56, xiao xiong mao panda rojo
> <ailurus.fulgens en hotmail.com> escribió:
> 
> > eso es solo el tiempo antes de que comience a escuchar
> > igual sin esa linea me da el mismo resultado
> > no importa el tiempo k espera
> > solo aparece el texto después de ejecutar algunos otros eventos
> 
> Vale. Entonces intenta determinar mejor dónde falla:
> 
> - ¿El servidor recibe los datos o es un problema de actualización de la ventana?
> 
> - ¿Afecta el tamaño del buffer en la recepción? ¿Qué pasa si no hay
> buffer? ¿Qué pasa si el mensaje tiene mayor longitud que el buffer?
> 
> - ¿Afecta en algo si cambias el timeout (socket.timeout(value))?
> 
> - ¿Qué pasa si fuerzas al cierre inmediato del socket con shutdown
> antes de hacer close?
> 
> 
> Prueba primero con la última pregunta. Según la documentación, un
> .close() no significa que se cierre inmediatamente el socket. Tal como
> lo has programado, el servidor no sabe cuándo ha terminado el cliente
> de enviar el mensaje hasta que se cierra el socket por timeout.
> 
> 
> -- 
> Hyperreals *R: http://ch3m4.org/blog
> Quarks, bits y otras criaturas infinitesimales
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120828/baa65442/attachment.html>


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