[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