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.
87 lines
2.6 KiB
87 lines
2.6 KiB
# Alexa_Cliente_Servidor_UDP
|
|
|
|
------------ CÓDIGO FUENTE PARA EL SERVIDOR --------------
|
|
|
|
<pre>
|
|
|
|
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()
|
|
|
|
</pre>
|
|
|
|
|
|
------------ CÓDIGO FUENTE PARA EL CLIENTE --------------
|
|
|
|
<pre>
|
|
|
|
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()
|
|
|
|
|
|
</pre> |