El día 29 de agosto de 2012 00:15, xiao xiong mao panda rojo
<ailurus.fulg...@hotmail.com> escribió:

> 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

El timeout es un modo común a todo el módulo socket. El cambiarlo era
por descartar cosas.

> 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

También a mí me ha dado alguna pista.

Con pygtk existe un doble bloqueo: el GIL (Global Interpreter Lock) de
python y el bloqueo propio de gdk. Cuando se ejecuta gtk.main() se
desbloquea gdk para que sea usado por otro hilo; pero no libera el GIL
en ése momento, con lo que queda bloqueado el intérprete python hasta
que no se produzca algún evento en el hilo principal. Todos los hilos
se paran, sólo la librería gtk está en funcionamiento.

La solución es pedir que los desbloqueos de gdk y GIL vaya parejos
invocando gtk.gdk.threads_init() antes de gtk.main():

  http://www.pygtk.org/docs/pygtk/gdk-functions.html#function-gdk--threads-init


-- 
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a