Compare commits

...

No commits in common. 'master' and 'main' have entirely different histories.
master ... main

@ -1,31 +0,0 @@
import socket
def cliente_udp():
cliente = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
direccion_servidor = ('localhost', 2000)
idioma_elegido = input("Seleccione el idioma (ingles, frances, italiano, portugues, japones o coreano): ")
while True:
opcion = input("Ingrese 'c' para cambiar de idioma, una palabra o '0' para salir: ")
if opcion == '0':
break
elif opcion == 'c':
idioma_elegido = input("Seleccione el nuevo idioma (ingles, frances, italiano, portugues, japones o coreano): ")
continue
mensaje = f"{opcion},{idioma_elegido}"
cliente.sendto(mensaje.encode('utf-8'), direccion_servidor)
datos, _ = cliente.recvfrom(1024)
respuesta = datos.decode('utf-8')
print(f"Respuesta del servidor: {respuesta}")
print("Conexión terminada.")
cliente.close()
if __name__ == "__main__":
cliente_udp()

@ -0,0 +1,94 @@
<h2>Diccionario Multilingüe</h2>
<h4>Proyecto final. Programación de Servicios y procesos. </h4>
<h4>Natàlia Sepúlveda Ballester</h4>
En este ejercicio se pretende crear un diccionario multilingüe en python. Para ello hemos creado un servidor, que tiene un pequeño archivo "diccionario" con las palabras en diferentes que tengo el memoria y de las que puedo obtener la traduccion desde el español.
La lista de idiomas, está compuesta por objetos idioma que a su vez tienen listas de palabras y su traducción en la lengua específica.
Un vez el servido está activo, permite que un cliente se pueda conectar, pueda seleccionar el idioma en el que desea recibir las palabras traducidas y puede enviarle las palabras en castellano para que se devuelva la traducción en este idioma.
El código del cliente permite, conectarse a un servidor. En este caso, el servidor tiene un puerto abierto, y cliente debe poner el IP del servidor y el puerto por donde estará operativo, (en mi caso, está puesto localhost, puesto que se ha hecho en un mismo equipo).
El cliente recibirá un print input con las opciones de idiomas que tiene, selecciona uno y luego puede o bien enviar una palabra, que el servidor reconocerá y buscará en su lista de idiomas para devolverla, o bien cambiar el idioma o bien por último, cerrar la conexión enviando un 0.
*----------------------------------CÓDIGO PARA EL SERVIDOR----------------------------------*
<pre>
import socket
idiomas = {
"ingles": {"hola": "hello", "adios": "bye", "buenos dias": "good morning"},
"frances": {"hola": "bonjour", "adios": "au revoir", "buenos dias": "bonne matinée"},
"italiano": {"hola": "ciao", "adios": "arrivederci", "buenos dias": "buongiorno"},
"portugues": {"hola": "olá", "adios": "adeus", "buenos dias": "bom dia"},
"japones": {"hola": "こんにちは (konnichiwa)", "adios": "さようなら (sayounara)", "buenos dias": "おはようございます (ohayou gozaimasu)"},
"coreano": {"hola": "안녕하세요 (anneonghaseyo)", "adios": "안녕히 가세요 (annyeonghi kaseyo)", "buenos dias": "좋은 아침이에요 (jonun achimieyo)"}
}
def servidor_udp():
servidor = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
direccion_servidor = ('', 2000)
servidor.bind(direccion_servidor)
print('El servidor está a la escucha...')
cliente_conectado = False
while True:
datos, direccion_cliente = servidor.recvfrom(1024)
palabra, idioma = datos.decode('utf-8').split(',')
if not cliente_conectado:
print(f"¡Cliente conectado desde {direccion_cliente}!")
cliente_conectado = True
if idioma in idiomas:
traduccion = idiomas[idioma].get(palabra.lower(), "Error en la respuesta, palabra no encontrada :)")
respuesta = f"{traduccion}"
else:
respuesta = "Error en la respuesta, inserta un idioma válido :)"
servidor.sendto(respuesta.encode('utf-8'), direccion_cliente)
if __name__ == "__main__":
servidor_udp()
</pre>
*----------------------CODIGO CLIENTE----------------------------*
<pre>
import socket
def cliente_udp():
cliente = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
direccion_servidor = ('localhost', 2000)
idioma_elegido = input("Seleccione el idioma (ingles, frances, italiano, portugues, japones o coreano): ")
while True:
opcion = input("Ingrese 'c' para cambiar de idioma, una palabra o '0' para salir: ")
if opcion == '0':
break
elif opcion == 'c':
idioma_elegido = input("Seleccione el nuevo idioma (ingles, frances, italiano, portugues, japones o coreano): ")
continue
mensaje = f"{opcion},{idioma_elegido}"
cliente.sendto(mensaje.encode('utf-8'), direccion_servidor)
datos, _ = cliente.recvfrom(1024)
respuesta = datos.decode('utf-8')
print(f"Respuesta del servidor: {respuesta}")
print("Conexión terminada.")
cliente.close()
if __name__ == "__main__":
cliente_udp()
</pre>

@ -1,40 +0,0 @@
import socket
idiomas = {
"ingles": {"hola": "hello", "adios": "bye", "buenos dias": "good morning"},
"frances": {"hola": "bonjour", "adios": "au revoir", "buenos dias": "bonne matinée"},
"italiano": {"hola": "ciao", "adios": "arrivederci", "buenos dias": "buongiorno"},
"portugues": {"hola": "olá", "adios": "adeus", "buenos dias": "bom dia"},
"japones": {"hola": "こんにちは (konnichiwa)", "adios": "さようなら (sayounara)", "buenos dias": "おはようございます (ohayou gozaimasu)"},
"coreano": {"hola": "안녕하세요 (anneonghaseyo)", "adios": "안녕히 가세요 (annyeonghi kaseyo)", "buenos dias": "좋은 아침이에요 (jonun achimieyo)"}
}
def servidor_udp():
servidor = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
direccion_servidor = ('', 2000)
servidor.bind(direccion_servidor)
print('El servidor está a la escucha...')
cliente_conectado = False
while True:
datos, direccion_cliente = servidor.recvfrom(1024)
palabra, idioma = datos.decode('utf-8').split(',')
if not cliente_conectado:
print(f"¡Cliente conectado desde {direccion_cliente}!")
cliente_conectado = True
if idioma in idiomas:
traduccion = idiomas[idioma].get(palabra.lower(), "Error en la respuesta, palabra no encontrada :)")
respuesta = f"{traduccion}"
else:
respuesta = "Error en la respuesta, inserta un idioma válido :)"
servidor.sendto(respuesta.encode('utf-8'), direccion_cliente)
if __name__ == "__main__":
servidor_udp()
Loading…
Cancel
Save

Powered by INFORMATICA.FP.EDU.ES.