[pyar] SOCKET

Marcos Dione mdione en grulic.org.ar
Dom Nov 15 23:58:24 ART 2015


On Fri, Nov 13, 2015 at 11:52:11AM -0430, Juan A. Diaz wrote:
> On vie, 2015-11-13 at 10:42 -0300, Omar A. Porciel wrote:
> > En
> > este momento estoy desarrollando una aplicación que tiene que
> > conectarse con un componente que desarrolló un Ing. Electrónico, el
> > mismo, tiene un módulo tibbo para establecer comunicación a través de
> > tcp/ip. Este módulo esta configurado como Server, o sea, prestando
> > servicio. Esto ya lo estoy haciendo en VB6 , justamente por eso lo
> > quiero desarrollar nuevamente. Necesito tirarle consultas al
> > componente, lo cual esta echo, y necesito escuchar un socket cuando
> > el componente envía datos. Gentilmente @facundobatista me dijo que
> > mirara   https://docs.python.org/3/library/selectors.html lo cual
> > estoy intentando hacer pero todavía no le encontré la vuelta.
> 
> Podes ver los ejemplo de la documentación del modulo socket
> https://docs.python.org/3/library/socket.html
> 
> O socketserver, que es un poco más compleja
> https://docs.python.org/3/library/socketserver.html
> 
> Pero la verdad que me parece mucho más simple ir por el lado selectors.
> Compara los ejmplo, y fijate que pensas vos. Si tenes algún problema o
> duda usando selectors o manda un mail a la lista que para eso esta :)

    yo entiendo que lo que estás buscando hacer es reimplementar el
cliente del tibbo, que ya tienes implementado en VB6, en python. también
asumo que como dices que el tibbo es un server tcp/ip, lo que tienes que
hacer es un cliente. en general la arquitectura cliente servidor implica
que el cliente manda un pedido al server y espera la respuesta.

    si el while True que mencionas es para esperar una respuesta, en
realidad con sólo llamar a read() del socket debería alcanzar. ahora si
además de esperar la respuesta tiene que hacer otras cosas en paralelo,
si, vas a necesitar una forma de hacer asincronía. 

    me extraña que facu haya sugerido la parte de selector y no asyncio.
selector de todas formas es bloqueante, mientras que asyncio apunta mas a
que programes tu cliente como si lo fueras a hacer bloqueante, pero que
con un par de artimañas lo conviertes en asincrónico. la documentación de
la stdlib e un poco áspera, pero capaz esto otro te sirva:

http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html

    espero no haberte revuleto demasiado las ideas. suerte con eso.

-- 
(Not so) Random fortune:
09:54 < sei> no entendí como creyó que yo fuera a estar al tanto de esas cosas
09:55 < StucKman> sei: no dejás de ser un punto neurálgico del grupo
09:55 < StucKman> o era punto aneurisma?
09:55 < sei> una bolita de grasa


More information about the pyar mailing list