[pyar] Mejor manera de utilizar Sockets

Enrique Alejandro Villafañe villafane.enrique en gmail.com
Vie Sep 11 10:05:00 ART 2015


Bueno, primero que nada gracias por contestar. Creo que intentare
nuevamente comprender el funcionamiento de twisted, yo he creado servidores
en twisted y tambien clientes. Solo para pruebas, pero aun no se como
manejar eventos creados por mi, al estilo de ConectionMade. Si alguien
conoce del tema agradeceria.

Tambien voy a utilizar PyQt voy a leer sobre el uso de sockets en PyQt.

El 11 de septiembre de 2015, 5:49, Marcos Dione <mdione en grulic.org.ar>
escribió:

> On Thu, Sep 10, 2015 at 08:01:35PM -0430, Enrique Alejandro Villafañe
> wrote:
> > Pero ahora quiero saber como puedo
> > dejar de estar en eso todo el tiempo si no que se comuniquen cuando halla
> > algo que decir. He visto que hay sockets no bloqueantes, select, twisted,
> > gevent. Bueno muchas cosas que he tratado de comprender y que no he
> podido
> > por falta de idioma. Espero alguien me pueda guiar en el mundo de los
> > sockets en general, que es mas recomendable, pienso que es importante
> > aprender algo que me sirva para cosas avanzadas y muchas conexiones desde
> > ya. Si hay algun material que desconozca tambien les agradeceria si me lo
> > pueden compartir
>
>     en español lamentablemente no. mi primer sugerencia es que aprendas
> inglés :-/
>
>     mi segunda sugerencia: si puedes usar python3.5 (que aún no salió,
> pero las betas ya están estables), usaría asyncio con async/await. es lo
> más parecido a programar con threads que hay.
>
>     de ahí para atrás, depende mucho de tu problema, y es posible que sea
> independiente de qué solución pongas del lado del cliente que del
> servidor, y hasta es posible soluciones híbridas.
>
>     por supuesto que la forma más obvia y sencilla sigue siendo usar
> threads, con una cola de mensajes (queue.Queue) entre el thread que
> maneja la red y el de la UI, si es que tenés. y hablando de UI, PyQt por
> ejemplo tiene una lib asyncrónica de red embebida en el sistema de events
> de la UI, por lo que si te manejás con el mecanismos de eventos/señales
> de Qt, es lo mismo.
>
>     volviendo a threads, el problema surge cuando varios threads usan los
> mismos datos. ahí tenés que empezar a usar locks y la cosa se complica.
> esto es más fácil de que suceda del lado del server que del cliente. una
> solución es irse para el lado del async.
>
>     async funciona mas o menos así: cuando vas a esperar la red (tanto en
> el server esperando un request del cliente como en el cliente esperando
> una respuesta del server), lo que hacés es asociar un callback, que es
> llamado cuando llega algo por la red. el problema es que eso hace que un
> algoritmo que use varias llamadas a red termine repartido en varias
> funciones y el código queda horripilante. esto es mas o enos lo que
> ofrece twisted y gevent y varios de ésos.
>
>     el último paso es ir hacia corutinas, que es básicamente lo que
> ofrece asyncio hasta python3.4. tiene la pinta de threads sin los
> problemas de threads, pero con unas construcciones raras basadas en yield
> y yield from. la evolución obvia de ello es el asyncio de python3.5 que
> mencioné al principio, que parece más natural al leer.
>
>     espero haberte mareado lo suficiente.
>
> --
> (Not so) Random fortune:
> [...] things like alcohol gels are fine, and useful. But they're useful
> because they're basically a substitute for handwashing, if you're in a
> place where you can't wash.
>             -- Joel Gallant, professor of medicine and epidemiology at
> Johns Hopkins
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Enrique A Villafañe

*Telefonos de Contacto*

Celular : +58 412 5151603
Oficina: +58 273 5325224 - +58 273 5321592 - +58 273 5325527
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150911/494bf627/attachment-0001.html>


More information about the pyar mailing list