实现流程
首次传输其流程如下
1.服务端向客户端传递文件名称和文件长度
2.跟据文件长度计算文件块数
3.客户端将传输的块数写入临时文件(做为断点值)
4.若文件传输成功则删除临时文件
首次传输失败后将按以下流程进行
1.客户端从临时文件读取断点值并发送给服务端
2.服务端与客户端将文件指针移至断点处
3.从断点处传输文件
这是当时的思路,但是因为当时用了CFile类实现,而不是SDK,所以我不得不重写,重写时断点续传又重新成了问题
1.下载的是文件列表
2.因为效率不再采用分块传输
3.如何记录文件列表与断点值
鉴于我以前做的断点续传,思路被禁固了一样 转不开弯 直到后来KING老大提示才饶过这个弯 其思路如下
1.客户端用CreateFile以OPEN_EXISTING方式打开要下载的文件列表
2.若成功说明有断点文件,则用GetFileSize得到大小做为断点
3若失败说明文件不存在,则创建一个文件
思路是相当简单的,而且一个好处是不用记录断点值 干净利落 呵呵
首次传输其流程如下
1.服务端向客户端传递文件名称和文件长度
2.跟据文件长度计算文件块数
3.客户端将传输的块数写入临时文件(做为断点值)
4.若文件传输成功则删除临时文件
首次传输失败后将按以下流程进行
1.客户端从临时文件读取断点值并发送给服务端
2.服务端与客户端将文件指针移至断点处
3.从断点处传输文件
这是当时的思路,但是因为当时用了CFile类实现,而不是SDK,所以我不得不重写,重写时断点续传又重新成了问题
1.下载的是文件列表
2.因为效率不再采用分块传输
3.如何记录文件列表与断点值
鉴于我以前做的断点续传,思路被禁固了一样 转不开弯 直到后来KING老大提示才饶过这个弯 其思路如下
1.客户端用CreateFile以OPEN_EXISTING方式打开要下载的文件列表
2.若成功说明有断点文件,则用GetFileSize得到大小做为断点
3若失败说明文件不存在,则创建一个文件
思路是相当简单的,而且一个好处是不用记录断点值 干净利落 呵呵