You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.6 KiB
2.6 KiB
Alexa_Cliente_Servidor_UDP
------------ CÓDIGO FUENTE PARA EL SERVIDOR --------------
import socket def servidor_udp(): #configuramos el socket UDP del servidor que es el que va a recibir los mensajes del cliente servidor = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) direccion_servidor = ('', 2000) servidor.bind(direccion_servidor) print('El servidor está a la escucha...') while True: datos, direccion_cliente = servidor.recvfrom(1024) # Convertimos los datos a un número numero = int(datos.decode('utf-8')) #posibles respuestas del servidor para el cliente if numero == 1: respuesta = "hola" elif numero == 2: respuesta = "hello" elif numero == 3: respuesta = "hallo" elif numero == 4: respuesta ="ciao" else: respuesta = "Error en la respuesta, inserta un número válido :)" # Enviamos la respuesta al cliente servidor.sendto(respuesta.encode('utf-8'), direccion_cliente) if __name__ == "__main__": servidor_udp()
------------ CÓDIGO FUENTE PARA EL CLIENTE --------------
import socket def cliente_udp(): #configuramos el socket UDP del cliente que es el que va a enviar los mensajes al servidor #ponemos la ip del servidor cliente = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) direccion_servidor = ('192.168.50.105', 2000) # Ajusta esto según la configuración del servidor while True: # Solicitamos al usuario que ingrese un número, se hará en bucle hasta que ingrese el 0 que termina la conexión entrada_usuario = input("Ingresa un número (1, 2, 3 ó 4), ingresa 0 para salir: ") # Verificamos si la entrada es un número if entrada_usuario.isdigit(): numero_elegido = int(entrada_usuario) # Enviamos el número insertado al servidor cliente.sendto(str(numero_elegido).encode('utf-8'), direccion_servidor) # Salimos del bucle de insertar un número para obtener respusta si el cliente pulsa 0 if numero_elegido == 0: break # Recibimos la respuesta del servidor datos, _ = cliente.recvfrom(1024) respuesta = datos.decode('utf-8') print(f"Respuesta del servidor: {respuesta}") else: print("Por favor, ingrese un número válido (1, 2 o 3, 4) o 0 para salir.") print("Conexión terminada.") cliente.close() if __name__ == "__main__": cliente_udp()