Datagrama en Python

Datagram es un tipo de comunicación inalámbrica entre dos puntos finales y requiere la dirección IP y el número de puerto para establecer la conexión. Datagram utiliza UDP (Protocolo de datagramas de usuario), convierte los datos del usuario en pequeños paquetes o fragmentos de datos para que puedan enviarse a través de una red de manera continua. En el tipo de conexión UDP, los paquetes de datos no tienen registros en el extremo del remitente, solo los envía el usuario y luego el receptor desea aceptar los paquetes de datos o no. Tipo de conexión UDP que utilizamos en videoconferencias o en videollamadas.

Aprendamos cómo enviar algunos datos en la red localhost y recibir los mismos datos que un receptor en la misma máquina para demostrar el uso de datagramas.

Para conocer las configuraciones de IP de su computadora, use este comando en la terminal:

ipconfig

Código #1: Para el extremo del remitente.

# importing socket module
import socket
  
UDP_IP = "localhost"
UDP_PORT = 8080
MESSAGE = "GeeksforGeeks"
  
print ("message:", MESSAGE)
  
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(bytes(MESSAGE, "utf-8"), (UDP_IP, UDP_PORT))

Producción:

message: Geeksforgeeks

Explicación:

  • Especifique su dirección IPv4 en lugar de UDP_IP y recuerde que el número de puerto 8080 es su número de puerto de host local, por lo que debe especificar lo mismo.
  • socket.socket()usa AF_INET para usar la dirección IPv4 de su sistema y SOCK_DGRAM es un tipo de protocolo que estamos usando para la comunicación.
  • Use el objeto sock para llamar a la función sendto(), luego pase el argumento de la tupla que contiene la dirección IP y el número de puerto.

Paso #2: Al final del receptor.

# importing socket module
import socket
  
UDP_IP = "localhost"
UDP_PORT = 8080
  
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
  
while True:
    # buffer size is 1024 bytes
    data, addr = sock.recvfrom(1024) 
    print ("Received message:", data)

Producción:

Received Message: b'Geeksforgeeks'

Explicación:

  • Necesitamos especificar la dirección IP del host local UDP_IPy usar la función socket.socket() igual que arriba.
  • vincule el parámetro al objeto de socket para que todo lo que se reciba en esta dirección de puerto lo atrapemos en este extremo. En el bucle, defina el tamaño del búfer como 1024. Como el mensaje no es grande, tiene un tamaño de búfer suficiente.

Publicación traducida automáticamente

Artículo escrito por Jitender_1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *