标签:sha python file server client
首先,我将请求的文件从服务器发送到客户端,然后我想将文件的计算sha从服务器发送到客户端,以便客户端可以检查发送的文件和接收的文件是否都是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)
解决方法:
您应该重新设计一下您的应用程序的工作原理:
>首先,服务器向客户端发送文件大小.
>客户端读取文件大小(将其转换为数字)并通知服务器(例如,向服务器发送“OK”).
>服务器从客户端读取“OK”并开始发送文件内容(最好以较小的块).
>客户端不断读取数据,直到它准确读取文件大小字节或发生错误.
>如果没有发生错误,客户端将计算刚收到的文件的哈希值并将其发送到服务器.
>服务器从客户端读取哈希值并与其本地文件进行比较;如果匹配,则向客户端发送“OK”,否则发送“ERROR”.
>客户端从服务器读取响应:如果收到“ERROR”,则删除该文件.
标签:sha,python,file,server,client 来源: https://codeday.me/bug/20190928/1825606.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。