发明内容
为了解决传输效率低的问题,本发明实施例提供了一种文件传输的方法和装置。该技术方案如下:
第一方面,提供了一种文件传输的方法,该方法包括:
发送设备向组播组组播发送准备请求消息,该准备请求消息至少携带待发送文件的文件名称和分块数量,该组播组包括至少一个设备;
当该发送设备接收到该组播组中的第一设备返回的第一个准备完成消息时,向该第一设备发送第一主接收设备确定消息,该第一主接收设备确定消息用于通知该第一设备其已被选择为主接收设备,向该组播组组播发送该待发送文件的数据包;
当有第二设备新加入该组播组时,向该第二设备发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
结合第一方面,在第一方面的第一种可能实现方式中,当有第二设备新加入该组播组时,向该第二设备发送第一消息之后,该方法还包括:
接收该第二设备发送的准备完成消息。
结合第一方面,在第一方面的第二种可能实现方式中,在向该第二设备发送第一消息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包之后,当该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时,该方法还包括:
向该第二设备发送第二主接收设备确定消息,该第二主接收设备确定消息用于通知该第二设备其已被选择为主接收设备,当接收到该第二设备发送的携带第二数据包标识的接收确认消息时,根据该第二数据包标识,向当前组播组组播发送该第二设备尚未接收的该待发送文件的数据包,该第二数据包标识用于指示该第二设备下一次应接收的数据包,是该第二设备根据其已接收到的该待发送文件的数据包来确定的;或,
向当前组播组组播发送该准备请求消息,当该发送设备接收到该当前组播组中的第三设备返回的第一个准备完成消息时,向该第三设备发送第三主接收设备确定消息,该第三主接收设备确定消息用于通知该第三设备其已被选择为主接收设备,当接收到该第三设备发送的携带第三数据包标识的接收确认消息时,根据该第三数据包标识,向当前组播组组播发送该第三设备尚未接收的该待发送文件的数据包,该第三数据包标识用于指示该第三设备下一次应接收的数据包,是该第三设备根据其已接收到的该待发送文件的数据包来确定的。
结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,该发送设备接收到该组播组中当前主接收设备发送的第一接收确认消息且该第一接收确认消息携带第四数据包标识时,确定该组播组的当前主接收设备已经接收到该待发送文件的所有数据包,该第四数据包标识用于指示该待发送文件的最后一个数据包。
第二方面,提供了一种文件传输的方法,该方法包括:
在发送设备向组播组中的设备组播发送待发送文件的数据包的过程中,第二设备加入该组播组,该组播组包括至少一个设备;
接收该发送设备向该第二设备发送的第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息;
根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
结合第二方面,在第二方面的第一种可能实现方式中,接收该发送设备向该第二设备发送的第一消息之后,该方法还包括:
该第二设备向该发送设备发送准备完成消息。
结合第二方面,,在第二方面的第二种可能实现方式中,该方法还包括:该第二设备接收第二主接收设备确定消息,该第二主接收设备确定消息由该发送设备在该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时发送给该第二设备,该第二主接收设备确定消息用于通知该第二设备其已被选择为主接收设备;
该第二设备根据该第二设备已接收到的该待发送文件的数据包,向该发送设备发送携带第二数据包标识的接收确认消息,该第二数据包标识用于指示该第二设备下一次应接收的数据包,使得该发送设备根据该第二数据包标识向当前组播组组播发送该第二设备尚未接收的该待发送文件的数据包;
接收该发送设备发送的该第二设备尚未接收的该待发送文件的数据包。
第三方面,提供了一种文件传输的装置,该装置包括:发送模块和接收模块,
其中,该发送模块用于向组播组组播发送准备请求消息,该准备请求消息至少携带待发送文件的文件名称和分块数量,该组播组包括至少一个设备;
该接收模块用于接收该组播组中的设备返回的准备完成消息;
该发送模块还用于当该接收模块接收到该组播组中的第一设备返回的第一个准备完成消息时,向该第一设备发送第一主接收设备确定消息,该第一主接收设备确定消息用于通知该第一设备其已被选择为主接收设备,向该组播组组播发送该待发送文件的数据包;
该发送模块还用于当有第二设备新加入该组播组时,向该第二设备发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
结合第三方面,在第三方面的第一种可能实现方式中,该接收模块还用于该发送模块向该第二设备发送第一消息之后,接收该第二设备发送的准备完成消息。
结合第三方面,在第三方面的第二种可能实现方式中,该发送模块还用于当该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时,向该第二设备发送第二主接收设备确定消息,该第二主接收设备确定消息用于通知该第二设备其已被选择为主接收设备,
该接收模块还用于接收该第二设备发送的携带第二数据包标识的接收确认消息,
该发送模块还用于当该接收模块接收到该第二设备发送的携带第二数据包标识的接收确认消息时,根据该第二数据包标识,向当前组播组组播发送该第二设备尚未接收的该待发送文件的数据包,该第二数据包标识用于指示该第二设备下一次应接收的数据包,是该第二设备根据其已接收到的该待发送文件的数据包来确定的;
或,
该发送模块还用于当该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时,向当前组播组组播发送该准备请求消息,
该接收模块还用于接收该当前组播组中的设备发送的准备完成消息,
该发送模块还用于当该接收模块接收到该当前组播组中的第三设备返回的第一个准备完成消息时,向该第三设备发送第三主接收设备确定消息,该第三主接收设备确定消息用于通知该第三设备其已被选择为主接收设备,
该接收模块还用于接收该第三设备发送的携带第三数据包标识的接收确认消息,
该发送模块还用于当该接收模块接收到该第三设备发送的携带第三数据包标识的接收确认消息时,根据该第三数据包标识,向当前组播组组播发送该第三设备尚未接收的该待发送文件的数据包,该第三数据包标识用于指示该第三设备下一次应接收的数据包,是该第三设备根据其已接收到的该待发送文件的数据包来确定的。
结合第三方面的第二种可能实现方式,在第三方面的第三种可能实现方式中,该装置还包括确认模块,用于当该接收模块接收到该组播组中当前主接收设备发送的第一接收确认消息且该第一接收确认消息携带第四数据包标识时,确定该组播组的当前主接收设备已经接收到该待发送文件的所有数据包,该第四数据包标识用于指示该待发送文件的最后一个数据包。
第四方面,提供了一种文件传输的装置,该装置包括:接收模块和加入模块,
其中,当在发送设备向组播组中的设备组播发送待发送文件的数据包的过程中,该加入模块用于加入该组播组,该组播组包括至少一个设备;
该接收模块用于接收该发送设备向本端发送的第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知本端该发送设备即将传输的数据包的信息;
该接收模块还用于根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
结合第四方面,在第四方面的第一种可能实现方式中,该装置还包括发送模块,该发送模块用于在该接收模块接收该发送设备发送的第一消息之后,向该发送设备发送准备完成消息。
结合第四方面,在第四方面的第二种可能实现方式中,该接收模块还用于接收第二主接收设备确定消息,该第二主接收设备确定消息由该发送设备在该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时发送给该本端,该第二主接收设备确定消息用于选择该本端为主接收设备;
该发送模块还用于根据本端已接收到的该待发送文件的数据包,向该发送设备发送携带第二数据包标识的接收确认消息,该第二数据包标识用于指示本端下一次应接收的数据包,使得该发送设备根据该第二数据包标识向当前组播组组播发送该本端尚未接收的该待发送文件的数据包;
该接收模块还用于接收该发送设备发送的该本端尚未接收的该待发送文件的数据包。
本发明实施例提供的技术方案带来的有益效果是:
通过在有新设备加入组播组时,及时将当前正在传输的文件信息通知给新加入设备,使得该新加入设备能够在已经进行的MFTP过程中及时地了解当前传输的文件内容,马上开始接收,提高传输效率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种文件传输的方法的流程图。参见图1,该方法包括:
101、发送设备向组播组组播发送准备请求消息,该准备请求消息至少携带待发送文件的文件名称和分块数量,该组播组包括至少一个设备。
102、当该发送设备接收到该组播组中的第一设备返回的第一个准备完成消息时,向该第一设备发送第一主接收设备确定消息,该第一主接收设备确定消息用于通知该第一设备其已被选择为主接收设备,向该组播组组播发送该待发送文件的数据包。
103、当有第二设备新加入该组播组时,向该第二设备发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
本发明实施例提供的方法,通过在有新设备加入组播组时,及时将当前正在传输的文件信息通知给新加入设备,使得该新加入设备能够在已经进行MFTP过程中及时地了解当前传输的文件内容,马上开始接收,提高传输效率。
图2是本发明实施例提供的一种文件传输的方法的流程图。参见图2,该方法包括:
201、在发送设备向组播组中的设备组播发送待发送文件的数据包的过程中,第二设备加入该组播组,该组播组包括至少一个设备。
202、接收该发送设备向该第二设备发送的第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息。
203、根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
本发明实施例提供的方法,通过在有新设备加入组播组时,及时将当前正在传输的文件信息通知给新加入设备,使得该新加入设备能够在已经进行MFTP过程中及时地了解当前传输的文件内容,马上开始接收,提高传输效率。
图3是本发明实施例提供的一种文件传输的方法的流程图。该发明实施例中的交互主体为发送设备STA_S,组播组中的接收设备包括第一设备STA_1和第三设备STA_3,新加入的第二设备以STA_2表示。参见图3,该方法包括:
301、发送设备STA_S向组播组组播发送待发送文件的准备请求消息,该准备请求消息至少携带该待发送文件的文件名称和分块数量,该组播组包括至少一个设备。
其中,组播组中的多个设备建立设备之间的IP层连接。
可选地,该准备请求消息可以为RRQ,该准备请求消息在携带该待发送文件的文件名称和分块数量的基础上,还可以携带文件大小。
302、当STA_1接收到该准备请求消息,向STA_S发送准备完成消息。
当STA_1接收到该准备请求消息时,可以由该STA_1用户选择是否接受该待发送文件的传输,当确定接受时,可通过STA_1的功能按键确定,使得STA_1向STA_S发送准备完成消息。
需要说明的是,本发明实施例仅以该STA_1为第一个反馈准备完成消息的设备为例进行说明。因此,在此步骤302中,仅对该STA_1发送准备完成消息的过程进行描述,在实际场景中,对于组播组中的每个接收设备来说,其发送准备完成消息的过程与该步骤302同理,在此不再赘述。
303、当STA_S接收到该组播组中的STA_1发送的准备完成消息,且该STA_1发送的准备完成消息为该STA_S接收到的第一个准备完成消息,STA_S将该STA_1选择为主接收设备,向STA_1发送第一主接收设备确定消息,第一主接收设备确定消息用于通知该STA_1其已被选择为主接收设备。
进一步地,当STA_S在接收到第一个准备完成消息之后,还接收到其他接收设备如STA_2发送的准备完成消息时,向其他接收设备发送非主接收设备确定消息,使得其他接收设备在接收到该消息时,获知自身不是主接收设备,也即是在接收到该STA_S发送的数据包时,无需返回接收确认消息。
需要说明的是,该步骤303以及后续步骤中的第一主接收设备确定消息、第二主接收设备确定消息等仅用于区分所确定的主设备,事实上,该第一主接收设备确定消息和第二主接收设备确定消息等的具体格式和携带的信息等可以相同,本发明实施例不对此进行限定。
304、当STA_1接收到第一主接收设备确定消息时,向STA_S发送携带第一数据包标识的接收确认消息,该第一数据包标识用于指示该发送设备即将传输的数据包,该接收确认消息用于确定下一次应接收数据包。
305、当STA_S接收到该STA_1发送的接收确认消息时,根据接收到的携带第一数据包标识的接收确认消息,向该组播组组播发送该待发送文件的数据包。
对于上述步骤303-305来说,该第一主接收设备确定消息为MRQ(MasterRequest,主接收设备确定消息),该第一主接收设备确定消息用于通知第一设备已经被选择为主接收设备,该主接收设备每当接收到STA_S组播发送的数据包时,需要向STA_S反馈接收确认消息,该接收确认消息用于确定下一次应接收的数据包标识,以使得STA_S按照接收到的数据包标识继续发送数据包。如,该接收确认消息可以携带的数据包标识为(k-1),则当STA_S接收到该(k-1)时,发送数据包标识为k的数据包,其中,k为正整数,也即是,如果该接收确认消息携带的数据包标识为3,则该STA_1下一个应该接收的数据包为数据包标识为4的数据包。
上述步骤303-305,是当发送设备接收到组播组中任一个接收设备返回的第一个准备完成消息时,以数据包形式发送该待发送文件的过程。
306、当STA_S检测到有设备STA_2新加入该组播组时,STA_S向STA_2发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该STA_S即将传输的数据包,该第一消息用于通知STA_2该STA_S即将传输的数据包的信息。
该第一消息在携带待发送文件的文件名称和分块数量的基础上,还可以携带文件大小。该第一消息用于通知新加入的设备当前正在传输的文件的具体情况,以使得新加入的设备能够在当前传输的基础上对发送设备正在传输的文件进行接收。当然,该第一消息还可以不携带该STA_S即将传输的数据包的数据包标识,本发明实施例对此不作具体限定。另外,该用于指示该STA_S即将传输的数据包的数据包标识可以是STA_S当前正在传输的数据包标识,也可以是该STA_S即将传输的数据包的数据包标识,通过发送设备和接收设备之间的协议,该接收设备可以获知发送设备当前正在发送的数据包是待发送文件中的哪一个,还可以获知发送设备即将传输的数据包是待发送文件中的哪一个。
其中,发送设备检测到有新的接收设备加入组播组的方式有以下任一种情况:(1)当发送设备是一个局域网的发起和管理设备,该发送设备具有动态主机设置协议(DHCP,Dynamic Host Configuration Protocol)功能,并负责组播地址的映射,每个新加入该网络的设备都要向该发送设备申请IP地址,所以当新设备申请加入组播组时,发送设备可以检测到该新加入设备。(2)发送设备处于一个局域网内,当有新设备加入该局域网时,发送设备能够获得该新设备在IP层加入组播组时的消息,从而检测到有新设备加入该组播组。(3)组播组地址映射由某一路由器负责,当新加入的设备向该路由器申请加入组播组时,路由器更新组播组地址映射表,根据预先的设定,同时通知发送设备,使得发送设备可以检测到该新加入设备。这些方法所说的局域网都可以是无线局域网。而事实上,该检测到新加入设备的方法还可以有其他实现方式,本发明实施例不做赘述。
307、当STA_2接收到第一消息时,向STA_S发送准备完成消息。
该准备完成消息用于通知STA_S该STA_2已经开始文件的接收过程,此时,该STA_2加入组播组并发送准备完成消息后,从该STA_S当前发送数据包开始,接收该STA_S所发送的数据包。
308、STA_S继续组播发送该待发送文件的数据包。
该步骤308与步骤305同理,是该STA_S继续发送待发送文件的数据包的过程,在此不再赘述。
309、当该STA_S接收到STA_1发送的接收确认消息且该接收确认消息携带第四数据包标识时,确定该组播组的当前主接收设备已经接收到待发送文件的所有数据包,该第四数据包标识用于指示该待发送文件的最后一个数据包,选择STA_2为主接收设备,向STA_2发送第二主接收设备确定消息,该第二主接收设备确定消息用于通知该STA_2其已被选择为主接收设备。
当该STA_S接收到STA_1发送的接收确认消息且该接收确认消息携带该待发送文件的最后一个数据包的数据包标识时,确定该STA_1已经接收到该待发送文件的所有数据包,也即是该STA_1的文件传输结束,则将新加入组播组的STA_2选择为主接收设备。
需要说明的是,本发明实施例仅以在确定该组播组的当前主接收设备已经接收到待发送文件的所有数据包之后,选择新加入设备为主接收设备继续进行发送为例进行说明,而事实上,在确定该组播组的当前主接收设备已经接收到待发送文件的所有数据包之后,还可以再次组播发送准备请求消息,使得接收到准备请求消息的接收设备返回准备完成消息,并将第一个返回准备完成消息的接收设备选择为主设备。也即是,该步骤309可用以下步骤代替:向当前组播组组播发送准备请求消息,当发送设备接收到当前组播组中的第三设备(如STA_3)返回的第一个准备完成消息时,向该第三设备发送第三主接收设备确定消息,该第三主接收设备确定消息用于通知该第三设备其已被选择为主接收设备,当接收到该第三设备发送的携带第三数据包标识的接收确认消息时,根据该第三数据包标识,向当前组播组组播发送该第三设备尚未接收的该待发送文件的数据包,该第三数据包标识用于指示该第三设备下一次应接收的数据包,是该第三设备根据其已接收到的该待发送文件的数据包来确定的。需要说明的是,该第三数据包标识可以是一个或多个,也即是该第三设备STA_3可以一次性通知STA_S其未接收到的多个数据包,也可以分多次通知STA_S其未接收到的数据包,本发明实施例对此不作具体限定。
310、STA_2接收到第二主接收设备确定消息时,根据STA_2已接收到的数据包,向STA_S发送携带第二数据包标识的接收确认消息,该第二数据包标识用于指示STA_2下一次应接收的数据包,是STA_2根据其已接收到的待发送文件的数据包来确定的。
需要说明的是,该第二数据包标识可以是一个或多个,也即是该第二设备STA_2可以一次性通知STA_S其未接收到的多个数据包,也可以分多次通知STA_S其未接收到的数据包,本发明实施例对此不作具体限定。
经过步骤307-308,该STA_2已经接收到该待发送文件的部分数据包,为了能够接收到该待发送文件的所有数据包,STA_2根据已接收到的数据包,向STA_S发送接收确认消息,该接收确认消息用于确定下一次应接收的数据包标识。需要说明的是,由于在传输过程中,数据包有可能丢失,因此,在步骤310中,可以按需发送接收确认消息,以获取该STA_2尚未接收到的数据包。
例如,待发送文件分为10个数据包,当前STA_2已接收到数据包标识为1,4,5的数据包,则该STA_2发送的接收确认消息可以携带1、2或5~9中任一个数据包标识,即分别用来请求接收标识为2、3或6~10的数据包。
311、该STA_S根据接收到的接收确认消息所携带的数据包标识,向当前组播组组播发送待发送文件中该STA_2尚未接收的数据包。
此时的组播组为排除了原主接收设备STA_1、且加入了新设备STA_2的组播组。
该步骤306-311是当检测到有新设备加入组播组时的传输过程,而当确定STA_2已接收到待发送文件的所有数据包时,如果当前没有新加入的设备,则按照步骤301-305的过程继续选择主接收设备并进行文件传输,如果有新加入的设备,则按照306-311继续执行,本发明实施例不再赘述。
需要说明的是,上述过程中涉及到的第一数据包标识、第二数据包标识、第三数据包标识以及第四数据包标识仅用于区分不同阶段的数据包标识,并不对数据包标识的类型等进行区分。
本发明实施例提供的方法,通过改变现有的MFTP协议,在有新设备加入组播组时,及时将当前正在传输的文件信息通知给新加入设备,使得该新加入设备能够在已经进行MFTP过程中及时地了解当前传输的文件内容,马上开始接收,提高传输效率。
图4是本发明实施例提供的一种文件传输的装置的结构示意图。参见图4,该装置包括:发送模块401和接收模块402;其中,发送模块401和接收模块402连接;该发送模块401用于向组播组组播发送准备请求消息,该准备请求消息至少携带待发送文件的文件名称和分块数量,该组播组包括至少一个设备;该接收模块402该接收模块用于接收该组播组中的设备返回的准备完成消息;该发送模块401还用于当接收模块402接收到该组播组中的第一设备返回的第一个准备完成消息时,向该第一设备发送第一主接收设备确定消息,该第一主接收设备确定消息用于通知该第一设备其已被选择为主接收设备,向该组播组组播发送该待发送文件的数据包;该发送模块401还用于当有第二设备新加入该组播组时,向该第二设备发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
可选地,该接收模块402还用于在该发送模块401向该第二设备发送第一消息之后,接收该第二设备发送的准备完成消息。
可选地,该发送模块401还用于当该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时,向该第二设备发送第二主接收设备确定消息,该第二主接收设备确定消息用于通知该第二设备其已被选择为主接收设备,
该接收模块402还用于接收该第二设备发送的携带第二数据包标识的接收确认消息,
该发送模块401还用于当该接收模块402接收到该第二设备发送的携带第二数据包标识的接收确认消息时,根据该第二数据包标识,向当前组播组组播发送该第二设备尚未接收的该待发送文件的数据包,该第二数据包标识用于指示该第二设备下一次应接收的数据包,是该第二设备根据其已接收到的该待发送文件的数据包来确定的;
或
该发送模块401还用于当该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时,向当前组播组组播发送该准备请求消息,
该接收模块402还用于接收该当前组播组中的设备发送的准备完成消息,
该发送模块401还用于当该接收模块402接收到该当前组播组中的第三设备返回的第一个准备完成消息时,向该第三设备发送第三主接收设备确定消息,该第三主接收设备确定消息用于通知该第三设备其已被选择为主接收设备,
该接收模块402还用于接收该第三设备发送的携带第三数据包标识的接收确认消息,
该发送模块401还用于当该接收模块402接收到该第三设备发送的携带第三数据包标识的接收确认消息时,根据该第三数据包标识,向当前组播组组播发送该第三设备尚未接收的该待发送文件的数据包,该第三数据包标识用于指示该第三设备下一次应接收的数据包,是该第三设备根据其已接收到的该待发送文件的数据包来确定的。
可选地,该装置还包括确认模块,用于当该接收模块402接收到该组播组中当前主接收设备发送的第一接收确认消息且该第一接收确认消息携带第四数据包标识时,确定该组播组的当前主接收设备已经接收到该待发送文件的所有数据包,该第四数据包标识用于指示该待发送文件的最后一个数据包。
图5是本发明实施例提供的一种文件传输的装置的结构示意图。参见图5,该装置包括:加入模块501和接收模块502;其中,加入模块501和接收模块502连接;当在发送设备向组播组中的设备组播发送待发送文件的数据包的过程中,该加入模块501用于加入该组播组,该组播组包括至少一个设备;该接收模块502用于用于接收该发送设备向本端发送的第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知本端该发送设备即将传输的数据包的信息;该接收模块502还用于根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
可选地,该装置还包括发送模块,用于在该接收模块接收该发送设备发送的第一消息之后,向该发送设备发送准备完成消息。
可选地,该接收模块502还用于接收第二主接收设备确定消息,该第二主接收设备确定消息由该发送设备在该组播组的当前主接收设备已经接收到该待发送文件的所有数据包时发送给该本端,该第二主接收设备确定消息用于选择该本端为主接收设备;
该发送模块502还用于根据本端已接收到的该待发送文件的数据包,向该发送设备发送携带第二数据包标识的接收确认消息,该第二数据包标识用于指示本端下一次应接收的数据包,使得该发送设备根据该第二数据包标识向当前组播组组播发送该本端尚未接收的该待发送文件的数据包;
该接收模块503还用于接收该发送设备发送的该本端尚未接收的该待发送文件的数据包。
需要说明的是:上述实施例提供的文件传输的装置在文件传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件传输的装置与文件传输的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6为本发明实施例所提供的一种设备的结构示意图。如图6所示,该设备600包括:发射器632、接收器631、存储器633以及分别与发射器632、接收器631和存储器633连接的处理器634;
存储器633用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器633可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器634可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
处理器634用于执行存储器633中存储的可执行程序代码,例如计算机程序来运行与可执行代码对应的程序。
该发射器632向组播组组播发送准备请求消息,该准备请求消息至少携带待发送文件的文件名称和分块数量,该组播组包括至少一个设备;当接收器631接收到该组播组中的第一设备返回的第一个准备完成消息时,通过发射器632向该第一设备发送第一主接收设备确定消息,该第一主接收设备确定消息用于通知该第一设备其已被选择为主接收设备,发射器632向该组播组组播发送该待发送文件的数据包;当有第二设备新加入该组播组时,发射器632向该第二设备发送第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息,使得该第二设备根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
该设备实现的功能可以参考前述方法实施例中发送设备实现的功能。
图7为本发明实施例所提供的一种设备的结构示意图。如图7所示,该设备700包括:发射器732、接收器731、存储器733以及分别与发射器732、接收器731和存储器733连接的处理器734;
存储器733用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器733可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器734可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
处理器734用于执行存储器733中存储的可执行程序代码,例如计算机程序来运行与可执行代码对应的程序。
该设备700在发送设备向组播组中的设备组播发送待发送文件的数据包的过程中,加入该组播组,该组播组包括至少一个设备;接收器731用于接收该发送设备向本端发送的第一消息,该第一消息至少携带该待发送文件的文件名称、分块数量和第一数据包标识,该第一数据包标识用于指示该发送设备即将传输的数据包,该第一消息用于通知该第二设备该发送设备即将传输的数据包的信息;该接收器731还用于根据该第一消息接收该发送设备即将传输的该待发送文件的数据包。
该设备实现的功能可以参考前述方法实施例中第二设备实现的功能。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是,本发明实施例中所述“第一”、“第二”……等,均为了彼此进行区分,无其他特定含义。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。