Primero, estoy enviando el archivo solicitado del servidor al cliente y luego deseo enviar el sha calculado del archivo desde el servidor al cliente, para que el cliente pueda verificar si tanto el sha del archivo enviado como el recibido. son lo mismo.
Me las arreglo para enviar el archivo, pero cuando trato de enviar también el sha (que es una variable) recibo un error (creo que el sha también se agrega al contenido del archivo)
¿Cómo puedo enviarlos por separado?
if (reqCommand == 'get'): with open (reqFile, 'rb') as in_file, open(encFile, "wb") as out_file: encrypt(in_file, out_file, "abc") f = open(encFile,'rb') for data in f: # print 'here3' conn.sendall(data) f.close() file_sh = hashfile(reqFile) print 'the sha1 function from the server: ', file_sh conn.send(file_sh)
y el cliente:
while True: data = sock.recv(1024) if not data: break #print data file_to_write.write(data)
Debes rediseñar un poco cómo funciona tu aplicación:
file size
o se produce un error. Una secuencia TCP debe formatearse en ambos extremos, ya que se trata de una secuencia y no de paquetes. Supongo que podría buscar un nullbyte ( '\x00'
) que debería indicar el final del archivo.