Cargando



Python - Programación con Redes

En este tutorial veremos algunos fundamentos de la programación con redes de Python y ejemplos prácticos de su aplicación.


dic 02 2013 06:12
Profesional
dic 02 2013 08:34
El presente y el futuro esta basado en las redes, Internet, la nube, por nombrar algunos. Python es un lenguaje actualizado y pensado a mejorar, por lo que nos permite realizar programas que puedan interactuar con redes, para ello nos ofrece varios módulos que de requerirlos solo debemos importarlos y empezar a trabajar con ellos.

Gracias a que tenemos estas opciones de módulos y librerías disponibles, solo debemos concentrarnos en la lógica de nuestro programa, lo que nos da como ventaja poder dedicarle el tiempo a lo que realmente nos interesa.

Módulo Socket

El socket es un componente básico en las comunicaciones de redes, es denominado el canal de información, ya que permite hacer un intercambio entre el servidor y el cliente en un puerto en especifico.

El socket viene en dos sabores, el server socket y el client socket, podemos inferir que el server socket hace la función de servidor, es decir, es quien despacha la información, en cuanto que el client socket, es el socket cliente el cual se encarga de hacer peticiones al server, según lo que hayamos programado, veamos una imagen que detalla mejor lo antes mencionado:


Python tiene una librería que nos permite trabajar directamente con este componente de red para poder realizar nuestros programas, en el ejemplo vamos a realizar un programa que haga lo siguiente: vamos a colocar un servidor socket escuchando en un puerto en particular y luego haremos el cliente que va a hacer una petición a ese socket y mostrar una información, de esta forma vamos a ver que sencillo es trabajar con los módulos de Python para el manejo de redes.

Por lo descrito anteriormente entonces debemos saber que un socket en Python es una instancia de la clase socket y del módulo socket, no nos asustemos viendo tantas veces esta misma palabra, ya que la implementación es bastante simple como podremos ver en su aplicación.

Veamos el ejemplo de la implementación:

import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
print 'Conexion obtenida de…', addr
c.send('Gracia por conectar')
c.close()

Este código importa la librería socket de Python, luego hacemos una instancia, especificamos el puerto y con el método bind unimos el host y el puerto, le decimos que quede en escucha y que cuando un cliente se conecte imprima un mensaje.

¿Bastante sencillo este módulo verdad? Ahora haremos el cliente, veamos:

import socket
s = socket.socket()
host = socket.gethostname()
port = 1234
s.connect((host, port))
print s.recv(1024)

Para el cliente como vimos inicialmente importamos el módulo socket, luego hacemos una instancia de la clase socket, definimos el host, luego definimos el puerto en el que sabemos que el servidor estará escuchando y ejecutamos el método de conexión, por último recibimos e imprimimos la respuesta.

Con esto terminamos este tutorial de como hacer programación con redes en Python, ya tenemos el conocimiento básico de como trabajar con las librerías y hasta pudimos ver un pequeño programa que demuestra todo el poder de las librerías de Python para la programación en redes.

¿Te ayudó este Tutorial?


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!

X