import socket # --- Configuración del Servidor --- IP_HOST = "127.0.0.1" # Escuchar en la interfaz local PUERTO_HOST = 6543 BUFFER_SIZE = 1024 # Tamaño máximo del buffer para recibir datos (1024 bytes) # 1. Crear el socket UDP # socket.AF_INET indica que usaremos IPv4 # socket.SOCK_DGRAM indica que usaremos el protocolo UDP (Datagrama) try: with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: # 2. Ligar el socket a la dirección IP y puerto s.bind((IP_HOST, PUERTO_HOST)) print(f"Servidor UDP escuchando en {IP_HOST}:{PUERTO_HOST}...") print("Esperando mensajes... (Presiona Ctrl+C para detener)") # Bucle principal para escuchar continuamente while True: # 3. Recibir datos # recvfrom retorna una tupla: (datos, dirección_del_emisor) datos_recibidos, direccion_emisor = s.recvfrom(BUFFER_SIZE) # 4. Decodificar e imprimir # Los datos se reciben como bytes y deben decodificarse a una cadena de texto (utf-8) mensaje_decodificado = datos_recibidos.decode('utf-8') print("-----------------------------------------") print(f"Mensaje recibido de {direccion_emisor}:") print(f"-> {mensaje_decodificado}") except KeyboardInterrupt: print("\nServidor detenido por el usuario.") except Exception as e: print(f"\nOcurrió un error: {e}")