首先我将请求的文件从服务器发送到客户端,之后我想将文件的计算sha从服务器发送到客户端,以便客户端可以检查发送的是否和收到的文件是一样的。
我设法发送文件但是当我尝试发送sha(这是一个变量)时我收到一个错误(我相信sha也被添加到文件内容中)
我如何单独发送?
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)
和客户:
while True:
data = sock.recv(1024)
if not data:
break
#print data
file_to_write.write(data)
答案 0 :(得分:1)
你应该重新设计你的应用程序的工作方式:
file size
字节或发生错误。答案 1 :(得分:0)
TCP流需要在两端进行格式化,因为它是流而不是数据包。我想你可以寻找一个nullbyte('\x00'
),它应该发出文件结束信号。