我该如何使用套接字编程和TCP客户端/服务器逻辑跟踪文件下载的进度,以继续进行代码流而不会产生无限的while循环?
答案 0 :(得分:-1)
如果可以手动解析标题,则可以在content-length
字段中获取文件大小,总迭代次数将为content_length / recv_buffer_size。例如,如果您一次接收1024个字节,并且文件大小为4096,则迭代次数= 4096/1024 = 4。
total_length = content_length / buffer_size
progressbar.set_length(total_length) #some imaginary library
for i in range(total_length):
data = socket.recv(buffer_size)
if data :
file.write(data)
progressbar.update(1) #some imaginary progress-bar library
file.close()