Crear carpeta morse_client.
Crear archivo morse.py dentro de la carpeta morse_client y pegar el siguiente código.
class Morse:
def __init__(self):
self.diccionario_espanol_morse = {
'A': '.-', 'B': '-...', 'C': '-.-.',
'D': '-..', 'E': '.', 'F': '..-.',
'G': '--.', 'H': '....', 'I': '..',
'J': '.---', 'K': '-.-', 'L': '.-..',
'M': '--', 'N': '-.', 'O': '---',
'P': '.--.', 'Q': '--.-', 'R': '.-.',
'S': '...', 'T': '-', 'U': '..-',
'V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..',
'0': '-----', '1': '.----', '2': '..---',
'3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..',
'9': '----.', ' ': 'ESPACIO'
}
self.diccionario_morse_espanol = {
'.-': 'A', '-...': 'B', '-.-.': 'C',
'-..': 'D', '.': 'E', '..-.': 'F',
'--.': 'G', '....': 'H', '..': 'I',
'.---': 'J', '-.-': 'K', '.-..': 'L',
'--': 'M', '-.': 'N', '---': 'O',
'.--.': 'P', '--.-': 'Q', '.-.': 'R',
'...': 'S', '-': 'T', '..-': 'U',
'...-': 'V', '.--': 'W', '-..-': 'X',
'-.--': 'Y', '--..': 'Z',
'-----': '0', '.----': '1', '..---': '2',
'...--': '3', '....-': '4', '.....': '5',
'-....': '6', '--...': '7', '---..': '8',
'----.': '9', 'ESPACIO': ' '
}
def codificar(self, mensaje):
mensaje_morse = ''
for letra in mensaje:
mensaje_morse += self.diccionario_espanol_morse[letra.upper()] + ' '
return mensaje_morse[:-1]
def decodificar(self, mensaje):
mensaje_espanol = ''
for morse in mensaje:
mensaje_espanol += self.diccionario_morse_espanol[morse.upper()]
return mensaje_espanol
Crear archivo cliente.py dentro de la carpeta morse_client y pegar el siguiente código.
import socket
from morse import Morse
class Cliente:
def ejecutar(self, ip, port, mensaje_original):
tamano_del_buffer = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((ip, port))
maquina_morse = Morse()
mensaje_en_morse = maquina_morse.codificar(mensaje_original)
print("Mensaje original '{}'".format(mensaje_original, ip))
print("Mensaje enviado '{}' a {}".format(mensaje_en_morse, ip))
s.send(mensaje_en_morse)
data = s.recv(tamano_del_buffer)
s.close()
Crear archivo servidor.py dentro de la carpeta morse_client y pegar el siguiente código.
import socket
from morse import Morse
class Servidor():
def ejecutar(self, ip, port):
tamano_del_buffer = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((ip, port))
s.listen(1)
conn, addr = s.accept()
while 1:
mensaje_en_morse = conn.recv(tamano_del_buffer)
if not mensaje_en_morse: break
print("Mensaje recibdo en Morse {}".format(mensaje_en_morse))
mensaje_en_morse = mensaje_en_morse.split(' ')
maquina_morse = Morse()
mensaje_espanol = maquina_morse.decodificar(mensaje_en_morse)
print("Mensaje decodificado {}".format(mensaje_espanol))
conn.send("Mensaje recibido!")
conn.close()