abrir socket dentro de un thread

punchik punchik punchikk en yahoo.com
Vie Jun 6 01:49:03 CEST 2008


hola amigos, tengo dos preguntas relacionados a threads. la primera es: 
necesito enviar datos a un servidor constantemente, para esto estoy usando la libreria httplib. Lo primero que intente es enviar  los datos desde el loop princial del mi programa, el problema con esto es que la funcion request, espera hasta que se conecte y luego necesita recibir una respuesta, por lo que si pongo esto en el loop principal mi aplicacion termina por hacerse muy lenta, es por lo cual me recomendaron usar un thread para enviar los datos al servidor.l
 
Estoy tratando de abrir un socket desde un thread de la siguiente manera:
 
class MiThread(threading.Thread):
    def __init__(self, num):
        apid = select_access_point()
        apo = access_point(apid)
        set_default_access_point(apo)
        s = socket(AF_INET, SOCK_STREAM)
        myip= apo.ip()
        params = urllib.urlencode({'data': myip, 'equis': 3123, 'ygri': 12444})
        headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
        conn = httplib.HTTPConnection("www.ketaplex.net")
        threading.Thread.__init__(self)
        self.num = num
    def run(self):
         conn.request("POST", "/cgi-bin/grow_recibe.py", params, headers)
         response = conn.getresponse()
 
 
mi thread lo inicializo de la siguiente manera
 
t = MiThread(1)
t.start()
t.join()
 
bueno el problema es que no funciona no se porque, cuando ejecuto el codigo desde fuera del thread si envia el mensaje al servidor, pero cuando lo pongo dentro del thread no funciona. Algujien tiene idea de que estroy haciendo mal?
 
 
 
 
la segunda pregunta que tenia es como puedo hacer para ejecutar la funcion run en forma de loop. osea cuando termine de enviar al servidor , vuelva  a iniciar el ciclo y envie de nuevo. 
 
muchas gracias.
 


      
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


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