ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

断点续传项目

2019-07-01 19:42:45  阅读:161  来源: 互联网

标签:断点续传 项目 filename content client file recv size


while True:
发出ls请求连接
client.send('ls'.encode('utf8'))
file_list = client.recv(1024)

print('请选择文件下载:')
# 解压缩出列表
file_list = eval(file_list.decode('utf8'))
for ind,val in enumerate(file_list):
print(ind,val)

file_choice = input('请选择你要的东西:')
filename = file_list[int(file_choice)]


# 断点续传:查看客户内已有的文档大小和指针位置
file_path = os.path.join(settings.CLIENT_PATH,filename)
if os.path.exists(file_path):
file_size = os.path.getsize(file_path)
client.send(str((filename,file_size)).encode('utf8'))

else:
client.send(str((filename,0)).encode('utf8'))

# 飞机头
file_head = client.recv(4)
file_head = struct.unpack('i',file_head)[0]
print(file_head)
#版本1:下载
recv_size = 0
while recv_size <= file_head:
file_content = client.recv(102400)
recv_size += 10240
print('recv_size', recv_size)
save_file_content(filename, file_content)

# 版本2:下载
# recv_size = 0
# while recv_size < file_head:
# if file_head - recv_size > 10240:
# file_content = client.recv(10240)
# save_file_content(filename, file_content)
# recv_size += 10240
# else:
# file_content = client.recv(file_head - recv_size)
# save_file_content(filename, file_content)
#
# break

标签:断点续传,项目,filename,content,client,file,recv,size
来源: https://www.cnblogs.com/zrx19960128/p/11116230.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有