GuiaLAB9-Python v2021
GuiaLAB9-Python v2021
LABORATORIO Nº 9
APLICACIONES DE RED CON PYTHON
1. OBJETIVOS DE APRENDIZAJE
- Aplicar el concepto de socket en el desarrollo aplicaciones distribuidas usando el
modelo Cliente-Servidor.
- Construir simples aplicaciones cliente-servidor usando el API de sockets provistas por
Python
2. HERRAMIENTAS Y MATERIALES REQUERIDOS
- Equipo requerido. Un PC Linux/Windows con conexión a internet
- Software. Python y un IDE de su preferencia
3. INTRODUCCION
Python es un lenguaje de programación interpretado multiparadigma, ya que soporta orientación
a objetos, programación imperativa y, en menor medida, programación funcional. Es
administrado por la Python Software Foundation y posee una licencia de código abierto.
Las implementaciones estándar de Python compilan declaraciones de código fuente a un formato
intermedio conocido como código de bytes lo que proporciona portabilidad, ya que es un formato
independiente de la plataforma. También como Python es de código abierto, se incluye
automáticamente con distribuciones de Linux, computadoras Macintosh y algunos productos y
hardware.
Python tiene una gran biblioteca estándar, usada para una diversidad de tareas, y en lo que se
refiere a la programación de aplicaciones de red, viene con módulos estándar de Internet que
permiten que los programas realicen una amplia variedad de tareas de red, en modo cliente y
servidor. Los programas en Python pueden comunicarse usando sockets, transferir archivos por
FTP; analizar archivos XML, enviar, recibir correos electrónicos, buscar páginas web por URL y
más. Las bibliotecas de Python hacen que estas tareas sean extraordinariamente sencillas.
Los servicios de red pueden verse a diferente escala, a un nivel básico, los sockets representan
la interfaz entre la capa de aplicación y la de red y pueden ser implementados de diferentes
modos: sockets de dominio UNIX, TCP, UDP, etc. La biblioteca socket de Python provee clases
específicas para manejar el transporte común, así como también una interfaz genérica para
controlar todo lo demás.
Módulo socket
Todos los sockets son creados mediante la función socket, la cual tiene la siguiente sintaxis:
misocket = socket(socket_family, socket_type)
socket.bind(): este método vincula una dirección (hostname, nro de puerto) a un socket.
ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/04/2021
LAB-273
UNIVERSIDAD MAYOR DE SAN ANDRÉS
VERSIÓN: 01 PÁGINA: 2 de 3
CARRERA DE INFORMÁTICA FECHA: 04/2021
4. PROCEDIMIENTO
El módulo socket de Python provee una interfaz para la API para los sockets de Internet. Por lo
que a continuación presentaremos el código básico para servidores y clientes que se
comunicaran mediante sockets usando TCP y UDP.
Comunicación usando TCP
El programa servidor atenderá peticiones en el puerto especificado, por cada petición recibida
devolverá el mensaje enviado por el cliente y permanecerá escuchando por nuevas peticiones.
El programa cliente se conectará con el servidor e ingresará por el teclado el mensaje a enviar,
cuando reciba la respuesta terminará su ejecución.
Ejecute ambos programas y verifique la comunicación. Nótese el código compacto y el grado de
abstracción que proporciona Python permitiendo una fácil lectura y comprensión.
ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/04/2021
LAB-273
UNIVERSIDAD MAYOR DE SAN ANDRÉS
VERSIÓN: 01 PÁGINA: 3 de 3
CARRERA DE INFORMÁTICA FECHA: 04/2021
5. EJERCICIOS
1. Desarrolle un servidor UDP que retorne la fecha y hora. Asimismo, el servidor aleatoriamente
responderá solo a la mitad de las peticiones recibidas simulando una situación de perdida de
paquetes. Cuando no deba enviar la respuesta deberá desplegar un mensaje indicando que
ha descartado el paquete y cerrar la conexión.
2. Desarrolle un programa cliente con sockets TCP para conectarse a un servidor web. Su
programa deberá enviar peticiones HEAD y mostrar la respuesta del servidor.
ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/04/2021