comprueba el md5 en recepción completa (no vaya a ser error del ubuntu)
Estuve verificando y descubri que el problema efectivamente es que los bytes de los archivos no llegan completos a su destino, y no solo eso sino que ademas parece que esa parte de bytes que no llegan se quedan atrapados en el bufer por que se alojan en una de las variables que almacenan el socket y luego se imprimen en la consola descontroladamente..
Lo supe cuando envie una imagen ya que la imagen se podia abrir pero solo aparecia la mitad de la imagen y el resto de la imagen se perdio en el camino y luego se imprimio en la terminal en el siguiente ciclo del bufer..
El fragmento de codigo que se encarga de enviar el documento es:
with open(comando, "rb") as archivo:
datos = archivo.read()
self.sock.send("ok")
respuesta = self.sock.recv(2)
if respuesta == "ok":
for byte in datos:
self.sock.send(byte)
self.pausa(1)
self.sock.send("ok")
Y el codigo que recibe el documento es este:
if a == "ok":
with open(cmd, "wb") as file:
conex.send("ok")
while True:
dato = conex.recv(2)
if dato == "ok":
break
file.write(dato)
Necesito encontrar una forma de garantizar que el archivo llegue completo insistiendo multiples veces y que mientras no se haya garantizado que llego completo no se imprima nada en la consola... pero no estoy seguro de como hacerlo... no se si tal vez utilizando algo como un len() con un bucle pueda funcionar o algo similar a eso...
Esto si que esta jodido de resolver ...