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_IP
y 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