本公开涉及计算机,尤其是对一种基于tcp传输文件的校验方法和装置。
背景技术:
1、网络时代,在很多情况下,应用程序期望传输层能提供可靠的服务,在上层应用想把大量的顺序数据(例如一个文件)发送到另一台主机时,tcp协议无疑是最佳的选择。使用tcp协议实现传输文件程序分为发送端和接收端。首先在传输文件数据之前,发送端会把将装有文件名称和文件长信息的数据包发送至接收端;传输文件数据时,将文件数据分成多份向接收端发送。相关技术中,接收端接收文件后直接写入文件,并未对文件数据接收结果进行校验,可能导致文件出现错误。
技术实现思路
1、为了解决上述技术问题,提出了本公开的实施例提供了一种基于tcp传输文件的校验方法和装置。
2、根据本公开实施例的一个方面,提供了一种对基于tcp传输文件的校验方法,应用于文件接收端,所述方法包括:
3、向文件传输端发送目标文件下载请求,并创建与所述目标文件相关的校验信息列表;
4、接收来自所述文件传输端发送的所述目标文件的任一文件块的索引和md5,其中,所述目标文件包括一个以上的文件块;
5、确定所述校验信息列表是否包括所述该文件块的索引;
6、若确定所述校验信息列表包括该文件块的索引,则确定所述校验信息列表中所述索引对应的数据和该文件块的md5是否一致,以进行数据校验;
7、若一致,则确定所述该文件块接收成功。
8、根据本公开一实施例,所述方法还包括:
9、若确定所述校验信息列表没有包括该文件块的索引,则向所述文件传输端重
10、新发送所述校验信息列表中当前索引对应的文件块获取请求。
11、根据本公开一实施例,所述方法还包括:
12、若确定所述校验信息列表中所述索引对应的数据和该文件块的md5不一致,则向文件传输端发送所述校验信息列表中当前索引对应的文件块获取请求。
13、根据本公开一实施例,所述方法还包括:
14、接收来自所述文件传输端发送的所述目标文件的所有文件块的索引总数;
15、基于校验信息列表和已接收的文件块的索引,统计已接收的文件块的索引数;
16、根据所述已接收的文件块的索引数和所述索引总数,确定所述目标文件的文
17、件块的索引是否全部接收;
18、若确定缺少所述目标文件的任一个文件块的索引,则向所述文件传输端发送该索引对应的文件块获取请求。
19、根据本公开一实施例,所述方法还包括:
20、在接收到所述目标文件的任一文件块时,若确定所述校验信息列表包括任一文件块的索引,且该索引存在对应的文件块,则抛弃该文件块。
21、根据本公开实施例的另一个方面,还提供了基于tcp传输文件的校验方法,应用于文件发送端,所述方法包括:
22、接收来自文件接收端发送的目标文件下载请求;
23、根据预设阈值,对所述目标文件进行文件块分割,以得到所述目标文件的每
24、个文件块的索引和计算每个文件块的md5;
25、发送的所述目标文件的任一文件块的索引和md5,其中,所述目标文件包括一个以上的文件块。
26、根据本公开一实施例,所述方法还包括:
27、在发送完成所述所述目标文件的任一文件块的索引和md5后,计算所述目
28、标文件的已发送的索引总数;
29、将所述索引总数发送给所述文件接收端。
30、根据本公开实施例的另一个方面,提供了基于tcp传输文件的校验装置,应用于文件接收端,所述装置包括:
31、第一发送模块,用于向文件传输端发送目标文件下载请求,并创建与所述目标文件相关的校验信息列表;
32、第一接收模块,用于接收来自所述文件传输端发送的所述目标文件的任一文件块的索引和md5,其中,所述目标文件包括一个以上的文件块;
33、第一确定模块,用于确定所述校验信息列表是否包括所述该文件块的索引;
34、第二确定模块,用于若确定所述校验信息列表包括该文件块的索引,则确定所述校验信息列表中所述索引对应的数据和该文件块的md5是否一致,以进行数据校验;
35、第三确定模块,用于若一致,则确定所述该文件块接收成功。
36、根据本公开一实施例,所述装置还包括:
37、删除模块,用于在接收到所述目标文件的任一文件块时,若确定所述校验信息列表包括任一文件块的索引,且该索引存在对应的文件块,则抛弃该文件块。
38、根据本公开实施例的另一个方面,基于tcp传输文件的校验装置,应用于文件发送端,所述装置包括:
39、第二接收模块,用于接收来自文件接收端发送的目标文件下载请求;
40、计算模块,用于根据预设阈值,对所述目标文件进行文件块分割,以得到所
41、述目标文件的每个文件块的索引和计算每个文件块的md5;
42、第二发送模块,用于发送的所述目标文件的任一文件块的索引和md5,其中,所述目标文件包括一个以上的文件块。
43、根据本公开实施例还提供了一种电子设备,所述电子设备包括:
44、处理器;
45、用于存储所述处理器可执行指令的存储器;
46、所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述一种对基于tcp传输文件的校验方法。
47、基于本公开上述实施例提供的技术方案,基于接收到的目标文件的任一文件块的索引和md5,利用接收端预先生成的校验信息列表,进行文件块校验,校验成功,则确定目标文件接收成功,确保文件正确传输。
48、下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
1.一种基于tcp传输文件的校验方法,其特征在于,应用于文件接收端,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
6.一种基于tcp传输文件的校验方法,其特征在于,应用于文件发送端,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种基于tcp传输文件的校验装置,其特征在于,应用于文件接收端,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
10.一种基于tcp传输文件的校验装置,其特征在于,应用于文件发送端,所述装置包括: