Contenidos
Código del servidor (ordenador que escucha):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import socket # Crear el socket UDP udp_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Asignar la IP y el puerto al socket udp_server.bind(('127.0.0.1', 2020)) print("Esperando mensaje...") # Recibir el mensaje mensaje, addr = udp_server.recvfrom(1024) print("Mensaje recibido:", mensaje.decode('ascii')) # Cerrar el socket udp_server.close() |
Código del cliente (ordenador que manda el mensaje):
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import socket # Crear el socket UDP udp_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Preparar el mensaje a enviar mensaje = '0'.encode('ascii') # Enviar el mensaje al servidor udp_client.sendto(mensaje, ('127.0.0.1', 2020)) # Cerrar el socket udp_client.close() |
Explicación línea por línea del código del servidor y del cliente:
Código del servidor (ordenador que escucha):
- Importar el módulo
socket
: Permite crear y manipular sockets de red en Python, que son puntos finales para la comunicación. - Crear el socket UDP: Se instancia un socket configurado para usar IPv4 (
AF_INET
) y el protocolo UDP (SOCK_DGRAM
), que es un protocolo sin conexión. - Asignar la IP y el puerto al socket: El socket se enlaza a la dirección
127.0.0.1
(localhost) y al puerto2020
, especificando dónde escuchar los mensajes entrantes. - Imprimir mensaje de espera: Se muestra un mensaje indicando que el servidor está listo y esperando recibir un mensaje.
- Recibir el mensaje: El servidor espera hasta recibir un mensaje, que se almacena junto con la dirección del remitente. La función
recvfrom(1024)
permite recibir hasta 1024 bytes. - Mostrar el mensaje recibido: El mensaje recibido se decodifica desde ASCII y se imprime.
- Cerrar el socket: Finalmente, se cierra el socket para liberar los recursos asociados.
Código del cliente (ordenador que manda el mensaje):
- Importar el módulo
socket
: Al igual que en el servidor, se utiliza para gestionar la comunicación en red. - Crear el socket UDP: Se crea un socket similar al del servidor, configurado para IPv4 y UDP.
- Preparar el mensaje a enviar: El mensaje
'0'
se convierte en bytes usando codificación ASCII, ya que los sockets envían datos en formato binario. - Enviar el mensaje al servidor: El mensaje se envía al servidor especificando la dirección IP
127.0.0.1
y el puerto2020
. - Cerrar el socket: Se cierra el socket, liberando los recursos una vez enviado el mensaje.