Exemplo n.º 1
0
s = socket.socket()
 
#Nos conectamos al servidor con el metodo connect. Tiene dos parametros
#El primero es la IP del servidor y el segundo el puerto de conexion
s.connect(("127.0.0.1", 7071))
#Indice para que solo se realice el acuerdo de claves una vez por conexión
i=1
#Creamos un bucle para retener la conexion
while True:
    index = 0
    if i==1:
        key = acuerdoClaves.dhe(s)
        i-=1
    #Instanciamos una entrada de datos para que el cliente pueda enviar mensajes
    mensaje = input("Mensaje a enviar: ")
    envio = hashUtil.calculaHash(mensaje,key.__str__(),index)
    envio = (mensaje+'-'+envio).encode('utf-8')
    #Con la instancia del objeto servidor (s) y el metodo send, enviamos el mensaje introducido
    s.send(envio)
    answer = s.recv(1024)
    answer = answer.decode()
    
    if (answer == "Mensaje recibido integramente"):
        #print(answer)
        ctypes.windll.user32.MessageBoxW(0,answer, "Aviso", 0)
    if (answer == "Mensaje corrupto"):
        #print(answer)
        ctypes.windll.user32.MessageBoxW(0,answer, "Aviso", 0)
    #Si por alguna razon el mensaje es close cerramos la conexion
    if (mensaje == "close"):
        break
Exemplo n.º 2
0
    
    if i==1:
        key = acuerdoClaves.dhe(sc)
        i-=1
    #Recibimos mensaje del cliente
    recibido = sc.recv(1024)
    recibido = recibido.decode()
    print(recibido)
    #Si el mensaje recibido es la palabra close se cierra la aplicacion
    if recibido == "close":    
        break
 
    else:
        index = 0
        mensaje = recibido.split('-')
        hashMensaje = hashUtil.calculaHash(mensaje[0],key.__str__(),index)
        if hashMensaje==mensaje[1]:
            ok = 'Mensaje recibido integramente'
            #Enviamos respuesta al cliente 
            sc.send(ok.encode(encoding='utf_8', errors='strict'))
        else:
            corrupto = 'Mensaje corrupto'
            #Enviamos respuesta al cliente 
            sc.send(corrupto.encode(encoding='utf_8', errors='strict'))
            #Escribimos en un fichero log los mensajes corruptos
            outfile = open('C:\\Users\\Irene\\Documents\\UNIVERSIDAD\\log.txt','a')
            outfile.write(time.strftime("%d/%m/%y")+' - '+ time.strftime("%H:%M:%S")+' '+corrupto+': '+mensaje[0]+'\r\n' )
        mensaje = recibido
    index+=1
        
print ("Adios.")