[Python-es] raro problema con hilos

Chema Cortes pych3m4 en gmail.com
Mar Ago 28 00:49:15 CEST 2012


El día 27 de agosto de 2012 23:47, xiao xiong mao panda rojo
<ailurus.fulgens en hotmail.com> escribió:
> estoy haciendo algunos experimento con hilos
> pero algo anda mal
> la idea era hacer una ventana y que esta se haga visible al darle una orden
> por un socket
> cuando reciba una cierta cadena x el socket la ventana debe realizar la
> orden
>
> lo raro es k no la realiza, sino hasta después de k se ejecuten varios
> eventos en la ventana
>
> este es el código que uso para enviar la orden
>
>
> import socket
> import time
> import sys
> #str = sys.argv[1]
> str = "hola"
> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
> s.connect(("localhost", 1333))
> #time.sleep(3)
> s.send(str)
> s.close()
> print "e
>
>
> completa su ejecución sin errores y de inmediato
>
> este es el el hilo principal
>
> import pygtk
> pygtk.require('2.0')
> #import gtk
> #import os#, sys
> import socket
> import ventana
> import thread
> import time
> import sys
>
>
> try:
>     server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>     server.bind(("",1333))
>     server.listen(1)
> except:
>     print "puerto 1333 ocupado\n?Otra instancia de la aplicacion se esta
> ejecutando?"
>     exit()
>
> def escuchapuerto(e,i):
>     global server
>     time.sleep(15)

¿No serán muchos 15 segundos?

>     while True:
>         #try:
>         socket_cliente, datos_cliente = server.accept()
>         mensaje = socket_cliente.recv(32)
>         print mensaje
>         if mensaje == "hola":
>             #ventana.ventana.window.set_visible(True)
>             #ventana.ventana.window.maximize()
>             ventana.ventana.entry.set_text(mensaje)
>             #time.sleep(3)
>         #except:
>         #    print "error escuchando puerto"
>
> thread.start_new_thread(escuchapuerto,(0,0))# no se ejecuta normalmente
> ventana.start()
>
> en este caso debe escribir un texto en un gtk.entry
> ejecuto el primer script, envia la cadena sin errores
> pero la ventan principal no hace nada
> la doy click a los botones y otros eventos, despues de ejecutarse entre 3 y
> 10 eventos recién aparece el texto
>
> hice casi lo mismo en java y funciona perfecto, la ventana principal
> responde sin  problemas
>
> que le esta pasando??




-- 
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales


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