<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>
estoy haciendo algunos experimento con hilos<br>pero algo anda mal<br>la idea era hacer una ventana y que esta se haga visible al darle una orden por un socket<br>cuando reciba una cierta cadena x el socket la ventana debe realizar la orden<br><br>lo raro es k no la realiza, sino hasta después de k se ejecuten varios eventos en la ventana<br><br>este es el código que uso para enviar la orden<br><br><br>import socket<br>import time<br>import sys<br>#str = sys.argv[1]<br>str = "hola"<br>s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br>s.connect(("localhost", 1333))<br>#time.sleep(3)<br>s.send(str)<br>s.close()<br>print "e<br><br><br>completa su ejecución sin errores y de inmediato<br><br>este es el el hilo principal<br><br>import pygtk<br>pygtk.require('2.0')<br>#import gtk<br>#import os#, sys<br>import socket<br>import ventana<br>import thread<br>import time<br>import sys<br><br><br>try:<br>&nbsp;&nbsp;&nbsp; server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br>&nbsp;&nbsp;&nbsp; server.bind(("",1333))<br>&nbsp;&nbsp;&nbsp; server.listen(1)<br>except:<br>&nbsp;&nbsp;&nbsp; print "puerto 1333 ocupado\n?Otra instancia de la aplicacion se esta ejecutando?"<br>&nbsp;&nbsp;&nbsp; exit()<br><br>def escuchapuerto(e,i):<br>&nbsp;&nbsp;&nbsp; global server<br>&nbsp;&nbsp;&nbsp; time.sleep(15)<br>&nbsp;&nbsp;&nbsp; while True:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #try:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket_cliente, datos_cliente = server.accept()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mensaje = socket_cliente.recv(32)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print mensaje<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if mensaje == "hola":<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ventana.ventana.window.set_visible(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #ventana.ventana.window.maximize()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ventana.ventana.entry.set_text(mensaje)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #time.sleep(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #except:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp; print "error escuchando puerto"<br>&nbsp;&nbsp;&nbsp; <br>thread.start_new_thread(escuchapuerto,(0,0))# no se ejecuta normalmente<br>ventana.start()<br><br>en este caso debe escribir un texto en un gtk.entry<br>ejecuto el primer script, envia la cadena sin errores<br>pero la ventan principal no hace nada<br>la doy click a los botones y otros eventos, despues de ejecutarse entre 3 y 10 eventos recién aparece el texto<br><br>hice casi lo mismo en java y funciona perfecto, la ventana principal responde sin&nbsp; problemas<br><br>que le esta pasando??<br>                                               </div></body>
</html>