Enviar paquete UDP en Python

Zeeshan Afridi 21 junio 2023
Enviar paquete UDP en Python

Hoy aprenderemos sobre el Protocolo de datagramas de usuario (UDP) y veremos cómo podemos enviar paquetes UDP utilizando la programación de Python.

Enviar paquete UDP en Python

El Protocolo de datagramas de usuario (UDP) y TCP/IP funcionan de manera diferente. UDP es un protocolo orientado a mensajes, a diferencia de TCP, que es un protocolo orientado a secuencias que garantiza que todos los datos se transfieran en la secuencia adecuada.

Configurar un socket UDP es un poco más fácil ya que UDP no requiere una conexión que dure mucho tiempo. Por otro lado, a diferencia de TCP, la entrega de mensajes UDP no está asegurada y deben caber en un solo paquete.

¿Cómo podemos hacerlo en Python? Python tiene un módulo incorporado llamado socket que debe importar.

import socket

Una vez que hayamos importado el módulo socket, debemos indicar el número de puerto y la dirección IP a la que intentaremos enviar mensajes UDP.

IP = "127.0.0.1"
PORT = 5003
Message = "Info"

Es hora de construir el socket a través del cual enviaremos nuestro mensaje UDP al servidor ahora que hemos establecido estas pocas variables.

Sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Sock.sendto(Message, (IP, PORT))

Tienes que crear dos archivos; cliente.py y servidor.py. Tanto los archivos del cliente como del servidor deben estar en los sistemas de servidor y cliente correspondientes.

Una vez que se ha creado el programa del cliente, el siguiente paso es crear el programa del servidor, que monitoreará la dirección IP y el número de puerto especificados para cualquier paquete UDP.

Tenga en cuenta que la secuencia de comandos de Python del cliente debe ejecutarse antes que este servidor; de lo contrario, la secuencia de comandos de Python del cliente fallará.

Podemos crear otro socket que se parecerá exactamente al socket que creamos en nuestra aplicación cliente una vez que hayamos importado el módulo socket y proporcionado nuestra dirección IP y número de puerto.

Código de ejemplo para el archivo Server.py:

import socket

IP = "127.0.0.1"
PORT = 5003
MESSAGE = "The meeting is From 10 pm."

print(f"sending information")
print(f"{MESSAGE} to {IP}:{PORT}")


sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE.encode(), (IP, PORT))

Producción :

sending information
The meeting is From 10 pm. to 127.0.0.1:5003

También debe escribir el código para mantener su secuencia de comandos continuamente escuchando esta conexión hasta que finalice una vez que haya construido su servidor socket.

Toma la forma de un bucle while sencillo, como se muestra a continuación:

Código de ejemplo para el archivo Client.py:

import socket

IP = "127.0.0.1"
PORT = 5003

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((IP, PORT))
print(f"start listening to {IP}:{PORT}")
while True:
    data, addr = sock.recvfrom(1024)
    print(f"received message: {data}")

Producción :

start listening to 127.0.0.1:5003
received message: The meeting is From 10 pm.

De esta forma, podemos enviar paquetes UDP en Python.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn