Cargando

Ir a contenido

X

 


Python - Twisted

En este tutorial veremos como trabajar los aspectos básicos de la librería twisted, iniciando desde su instalación, hasta realizar un programa sencillo.


Escrito por el dic 16 2013 16:37 Python Twisted librería twisted


En los diferentes módulos que existen de Python para programación de redes también hay componentes no incluidos por defecto y que debemos descargar e instalar, esto no es algo necesario para que podamos realizar programas, sin embargo, a veces estos componentes de terceros tienen muchas funcionalidades que podemos utilizar que nos facilitan la vida, dejando que nos concentremos solamente en la lógica de nuestro programa.

Dentro de estos componentes tenemos a Twisted de la empresa Twisted Matrix Laboratories, este componente es un framework orientado a eventos de programación de redes para Python, originalmente fue desarrollado para videojuegos, sin embargo actualmente se utiliza mucho para todo tipo de programas en red.

Descargando e instalando Twisted

Instalar Twisted es muy sencillo, primero debemos descargar la versión de la librería que necesitamos dependiendo de nuestro sistema, para ello podemos ir a la web con el siguiente enlace: http://twistedmatrix. com, una vez ahí podemos buscar la versión más adecuada como podemos ver en la siguiente imagen:


Si necesitamos una versión más especifica podemos ir a la sección detallada de descargas pulsando el enlace DOWNLOAD en la parte superior derecha del site.

Una vez obtenemos la versión que queremos, podemos instalarla, si estamos utilizando Windows, el instalador nos va a llevar paso a paso por los requerimientos, en caso que sea otro sistema, debemos obtener los fuentes y luego hacer lo siguiente dentro de la carpeta en la cual descomprimimos los archivos:

python setup.py install

Una vez que tengamos todo ya podemos empezar a utilizar esta librería para construir nuestros programas.

Creando un servidor básico

Al inicio habíamos explicado que Twisted está orientado a eventos y aquí lo veremos. Al momento de hacer un servidor utilizando las librerías socket de Python debemos declarar un loop que es el encargado de verificar las nuevas conexiones, en este caso ahora lo que haremos serán manejadores de eventos que van a gestionar cada una de las situaciones que ocurran .

Los eventos que debemos prever son, una nueva conexión, recepción de datos, un cliente se desconecta, etc. Estos manejadores de eventos se definen en un protocolo y dicho protocolo necesita de un factory que pueda construir los objetos de los eventos, esto puede sonar confuso pero ahora que veamos el código todo estará más claro.

Veamos a continuación un código donde escribimos un servidor básico utilizando Twisted:

from twisted.internet import reactor
from twisted.internet.protocol import Protocol, Factory
class SimpleLogger(Protocol):
def connectionMade(self):
	 print 'Got connection from', self.transport.client
def connectionLost(self, reason):
	 print self.transport.client, 'disconnected'
def dataReceived(self, data):
	 print data
factory = Factory()
factory.protocol = SimpleLogger
reactor.listenTCP(1234, factory)
reactor.run()


Lo primero que realizamos es importar las librerías y componentes necesarios, en este caso reactor, Protocol y Factory, luego manejamos los eventos dentro de una clase, como cuando tenemos una nueva conexión, una conexión perdida y si recibimos datos.

Hacemos una instancia de Factory que es quien se encargará de construir los objetos necesarios, le especificamos que su protocolo será la clase que hemos realizado y finalmente con reactor ponemos nuestro programa a escuchar a un puerto; como vemos no es nada complicado viéndolo de esta forma.
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0

Tutoriales Relacionados


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
-
VOTA
5
0%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado dic 16 2013 16:37
  •   Actualizado dic 17 2013 11:58
  •   Visitas 1.2K
  •   Nivel
    Profesional