CN112367351A - 用于多设备的文件共享方法及装置、目标服务器、客户端 - Google Patents
用于多设备的文件共享方法及装置、目标服务器、客户端 Download PDFInfo
- Publication number
- CN112367351A CN112367351A CN202011051312.7A CN202011051312A CN112367351A CN 112367351 A CN112367351 A CN 112367351A CN 202011051312 A CN202011051312 A CN 202011051312A CN 112367351 A CN112367351 A CN 112367351A
- Authority
- CN
- China
- Prior art keywords
- client
- request
- file
- connection
- clients
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于多设备的文件共享方法及装置、目标服务器、客户端,所述方法包括:从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。通过本发明的技术方案,可以使已建立连接的客户端作为代理服务器代替目标服务器与请求文件的客户端建立连接并共享文件。
Description
技术领域
本发明涉及文件共享技术领域,具体地涉及一种用于多设备的文件共享方法及装置、目标服务器、客户端。
背景技术
在现有技术中,当多个客户端想要同步共享目标服务器的同一文件时,由多个客户端直接与目标服务器建立连接,客户端向目标服务器发送请求后,目标服务器同时向多个客户端发送同一文件。当客户端的数量较大时,目标服务器传输数据的总带宽会超过目标服务器的带宽限制,从而会产生卡顿、闪退等严重的性能问题,也限制了参与同步共享文件的客户端数量。
例如,假设传输速率为15MBs,播放一个320MB时长00:04:20的1080p的视频,为了不卡顿地播放这个视频文件,需要的带宽是320MB/260s=1.23MBs,所以目标服务器在理想情况下最多支持15/1.23=12个客户端同时播放。通常情况下,实际可用的传输带宽一般为理论带宽的50%甚至更低,实际上支持同时播放的客户端数量小于6个。
亟需一种多设备的文件共享方法,解决目标服务器允许同步共享文件的客户端数量有限的问题。
发明内容
本发明解决的技术问题是目标服务器向客户端共享同一文件时,目标服务器允许连接的客户端数量有限的问题。
为解决上述技术问题,本发明实施例提供一种用于多设备的文件共享方法,所述方法包括:从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
可选的,所述方法还包括:如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端大于等于预设共享上限,则在所述代理客户端组中选择客户端作为所述代理服务器,并向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
可选的,所述方法还包括:如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且正在共享的总文件数大于等于预设文件共享上限,则在所述代理客户端组中选择客户端作为所述代理服务器,并向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
可选的,所述方法还包括:如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且所述正在共享的总文件数小于所述预设文件共享上限,则与所述请求客户端建立连接,并根据所述第一连接请求,向所述请求客户端共享所述请求文件。
可选的,向所述请求客户端共享所述请求文件包括:从所述请求客户端接收读文件命令,所述读文件命令用于指示所述请求客户端请求所述请求文件的至少一部分;基于所述读文件命令,向所述请求客户端共享所述请求文件的至少一部分。
可选的,所述第一连接请求还包含所述请求文件的存储路径。
可选的,所述代理服务器组中的客户端构成树形结构,所述在代理客户端组中选择客户端作为代理服务器包括:根据所述请求文件的标识,在预设拓扑表中查找所述请求文件所属的子表;其中,所述预设拓扑表包含多个子表,每个子表与单个请求文件一一对应;在所述子表中,确定所述树形结构中级数最小的客户端的数量;如果所述级数最小的客户端的数量为单个,则选择所述树形结构中级数最小的客户端作为所述代理服务器。
可选的,所述每个子表包含所述代理客户端组中的每个客户端的当前允许连接数量,所述在代理客户端组中选择客户端作为代理服务器还包括:如果所述树形结构中级数最小的客户端为多个,在多个级数最小的客户端中选择当前允许连接数量最大的客户端作为所述代理服务器。
可选的,所述方法还包括:从所述请求客户端接收所述请求文件的标识、所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量;根据所述请求文件的标识,将所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量添加至所述请求文件所属的子表中。
可选的,所述方法还包括:从所述代理服务器接收所述请求文件的标识、所述代理服务器的IP地址和所述代理服务器当前允许连接数量;根据所述请求文件的标识和所述代理服务器的IP地址,将所述代理服务器当前允许连接数量更新至所述请求文件所属的子表中。
可选的,所述用于多设备的文件共享方法用于目标服务器,在所述代理客户端组中选择客户端作为代理服务器之前,所述文件共享方法还包括:按照建立连接的时间顺序,将待连接的客户端均连接至所述目标服务器,以形成所述代理客户端组。
可选的,所述用于多设备的文件共享方法用于目标服务器,在所述代理客户端组中选择客户端作为代理服务器之前,所述文件共享方法还包括:按照建立连接的时间顺序,依次将待连接的客户端连接至所述目标服务器,直至达到所述目标服务器的允许连接数量的预设上限,记为第一级客户端;如果所述第一级客户端的数量大于等于所述目标服务器的允许连接数量的预设上限,则确定当前允许连接数量最大的第一级客户端,记为第一级可选客户端;依次将所述待连接的客户端连接至所述第一级可选客户端中的任意一个所述第一级可选客户端,直至与每个第一级客户端连接的客户端数量达到各自的允许连接数量的上限阈值,记为第二级客户端;如果与每个第N-1级客户端连接的客户端数量大于等于各自的允许连接数量的预设上限,则确定当前允许连接数量最大的第N级客户端,记为第N级可选客户端;依次将所述待连接的客户端连接至所述第N级可选客户端中的任意一个,以形成所述代理客户端组,其中,N为正整数,N≥2。
可选的,所述文件共享方法应用于局域网中,所述局域网包括有线局域网和无线局域网。
本发明实施例还提供另一种用于多设备的文件共享方法,所述方法包括:向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件。
可选的,所述方法还包括:向所述目标服务器发送读文件命令,所述读文件命令用于指示所述客户端请求所述请求文件的至少一部分;从所述目标服务器接收共享所述请求文件的至少一部分。
可选的,所述第一连接请求还包含所述请求文件的存储路径。
可选的,所述方法还包括:向所述目标服务器发送所述请求文件的标识、所述客户端的IP地址、所述代理服务器的IP地址、所述客户端当前允许连接数量,以使所述目标服务器根据所述请求文件的标识,将所述客户端的IP地址、所述代理服务器的IP地址、所述客户端当前允许连接数量添加至所述请求文件所属的子表中;其中,所述请求文件所属的子表属于预设拓扑表,所述预设拓扑表包含多个子表,每个子表与单个请求文件一一对应,每个子表包含所述代理客户端组中的每个客户端的当前允许连接数量。
可选的,所述方法应用于局域网中,所述局域网包括有线局域网和无线局域网。
本发明实施例还提供一种用于多设备的文件共享的装置,所述装置包括:接收模块,用于从请求客户端接收第一连接请求,所述第一连接请求包含请求文件标识,所述标识用于唯一确定所述请求文件;查找模块,用于在当前建立连接的客户端的数量大于等于预设连接上限时,在代理客户端组中选择客户端作为代理服务器;发送模块,用于向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;其中,所述代理客户端组是在当前建立连接的客户端中正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
本发明实施例还提供另一种用于多设备的文件共享的装置,所述装置包括:第一发送模块,用于向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;接收模块,用于从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;第二发送模块:用于向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件;其中所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
本发明实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述用于多设备的文件共享方法的步骤。
本发明实施例还提供一种目标服务器,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述用于多设备的文件共享方法的步骤。
本发明实施例还提供一种客户端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述用于多设备的文件共享方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种用于多设备的文件共享方法,所述方法包括:从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。通过本发明实施例提供的技术方案,目标服务器可以根据请求客户端发送的第一连接请求确定所述请求客户端请求的文件,通过判断当前建立连接的客户端的数量是否大于等于预设连接上限,可以针对当前建立连接的客户端的数量大于等于预设连接上限的情况,为所述请求客户端在代理客户端组中选择代理服务器,以代替目标服务器与所述请求客户端建立连接并共享文件。采用这样的方案,在多个客户端共享文件时,通过设置代理服务器,目标服务器无需与所有的客户端建立连接即可使所有客户端共享同一文件,能够提高允许同步共享文件的客户端的数量并减轻目标服务器带宽负担。
进一步地,在判断当前建立连接的客户端的数量是否大于等于预设连接上限之后,如果当前建立连接的客户端的数量小于所述预设连接上限,则进一步判断正在共享所述请求文件的客户端数量是否大于等于预设共享上限,对于正在共享所述请求文件的客户端数量大于等于预设共享上限的情况,也需要为所述客户端在代理客户端组中选择代理服务器,以代替目标服务器与所述客户端建立连接并共享文件,从而可以实现更精准的带宽控制。
进一步地,代理客户端组中选择客户端作为代理服务器时,可以根据所述请求文件的标识,在预设拓扑表中找到所述请求文件所属的子表;从所述子表中选择当前允许连接数量最大的客户端作为代理服务器,由此,选出的代理服务器是与所述请求文件有对应关系的,并且可以均衡化各个代理服务器连接的客户端的数量,减轻各个代理服务器的连接负担。
附图说明
图1是本发明实施例中一种用于多设备的文件共享方法的流程图。
图2是本发明实施例中一种用于多设备的文件共享方法的应用场景示意图。
图3是本发明实施例中另一种用于多设备的文件共享方法的流程图。
图4是本发明实施例中的一种用于多设备的文件共享装置的结构示意图。
图5是本发明实施例中的另一种用于多设备的文件共享装置的结构示意图。
具体实施方式
如背景技术中记载的,在现有技术中,当多个客户端想要同步共享目标服务器的同一文件时,由多个客户端直接与目标服务器建立连接,客户端向目标服务器发送请求后,目标服务器同时向多个客户端发送同一文件。当客户端的数量较大时,目标服务器传输数据的总带宽会超过目标服务器的带宽限制,从而会产生卡顿、闪退等严重的性能问题,也限制了参与同步共享文件的客户端数量。
亟需一种多设备的文件共享方法,解决目标服务器允许同步共享文件的客户端数量有限的问题。
为解决上述技术问题,本发明实施例提供一种用于多设备的文件共享方法,所述方法包括:从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。通过本发明实施例提供的技术方案,目标服务器可以根据请求客户端发送的第一连接请求确定所述客户端请求的文件,通过判断当前建立连接的客户端的数量是否大于等于预设连接上限,针对当前建立连接的客户端的数量大于等于预设连接上限的情况,为所述请求客户端在代理客户端组中选择代理服务器,以代替目标服务器与所述请求客户端建立连接并共享文件。采用这样的方案,在多个客户端共享文件时,通过设置代理服务器,目标服务器无需与所有的客户端建立连接即可使所有客户端共享同一文件,能够提高允许同步共享文件的客户端的数量并减轻目标服务器带宽负担。
为使本发明的上述目的、特征和有益效果能够更为明显结合附图对本发明的具体实施例做详细的说明。
图1所述的一种用于多设备的文件共享方法可以包括如下步骤:
步骤S101:从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
步骤S102:如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;
步骤S103:向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
在步骤S101的具体实施中,所述请求客户端是当前向目标服务器请求共享文件的客户端,目标服务器从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件。具体而言,目标服务器可以接收请求客户端发送的第一连接请求,所述第一连接请求包含所述请求客户端所要请求的请求文件的标识,所述标识可以是一串数字,所述数字的值可以为任意正整数。
所述第一连接请求还可以包括所述请求文件的名称,或者采用所述请求文件的名称作为所述标识的至少一部分。
进一步地,所述第一连接请求还可以包括所述请求文件的存储路径。目标服务器可以通过所述请求文件的标识确定所述客户端所要请求的请求文件,也可以根据所述请求文件的存储路径,通过所述请求文件的存储路径确定所述请求文件的存储位置。
进一步地,所述第一连接请求还可以包括所述目标服务器的IP地址,例如,在一个非限制实施例中,请求文件的名称可以为192.168.2.2:5000:/data/xxx/xxx/mp4。所述请求文件可以存储本地存储器中,也可以存储在远程服务器中,所述本地存储器和远程存储器都可以提供访问接口。
在步骤S102的具体实施中,如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器。
具体而言,考虑到目标服务器的带宽是有限的,本发明实施例中可以提前设置目标服务器的预设连接上限,如果当前目标服务器连接的客户端的数量大于等于预设连接上限,目标服务器在收到第一连接请求后并不与客户端建立连接,而是在代理客户端组中选择一个客户端,将这一客户端作为代理服务器代替目标服务器与客户端建立连接。
所述预设连接上限限定了与目标服务器直接连接的客户端的数量,所述目标服务器可以向与其直接连接的客户端共享同一文件,也可以向与其直接连接的客户端共享不同的文件。
在本发明实施例的另一种具体实施方式中,如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端数量大于等于预设共享上限,目标服务器也可以在代理客户端组中选择一个客户端作为代理服务器,从而可以实现更精准的带宽控制。
在本发明实施例的又一种具体实施方式中,如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且正在共享的总文件数大于等于预设文件共享上限,目标服务器也可以在代理客户端组中选择一客户端作为代理服务器,从而可以实现更精准的带宽控制。
在图1所示的实施例中的步骤S102之前,所述用于多设备的文件共享方法还可以包括以下步骤:按照建立连接的时间顺序,依次将待连接的客户端连接至所述目标服务器,直至达到所述目标服务器的允许连接数量的上限阈值,记为第一级客户端;如果所述第一级客户端的数量大于等于所述目标服务器的允许连接数量的上限阈值,则确定当前允许连接数量最大的第一级客户端,记为第一级可选客户端;依次将所述待连接的客户端连接至所述第一级可选客户端中的任意一个所述第一级可选客户端,直至与每个第一级客户端连接的客户端数量达到各自的允许连接数量的上限阈值,记为第二级客户端;如果与每个第N-1级客户端连接的客户端数量大于等于各自的允许连接数量的上限阈值,则确定当前允许连接数量最大的第N级客户端,记为第N级可选客户端;依次将所述待连接的客户端连接至所述第N级可选客户端中的任意一个,以形成所述代理客户端组,其中,N为正整数,N≥2。
可以理解的是,当依次将所述待连接的客户端连接至所述第一级可选客户端中的任意一个所述第一级可选客户端时,还可以对第一级客户端连接的客户端数量进行及时更新,例如可以通过设置计数器,每连接一次,所述计时器加一,对第一级客户端连接的客户端数量进行更新。
通过上述步骤形成的代理客户端组中的客户端可以构成一个树形结构,其中每个客户端都是树形结构中的节点,可以理解的是,第N-1级节点可称为具有连接关系的第N级节点的父节点。
本领域技术人员可以理解,在所述代理客户端组中选择客户端作为代理服务器之前,也可以按照建立连接的时间顺序,将待连接的客户端均连接至所述目标服务器,以形成所述代理客户端组。
继续参照图1,进一步地,步骤S102中所述在代理客户端组中选择客户端作为代理服务器具体可以包括以下步骤:步骤一:根据所述请求文件的标识,在预设拓扑表中查找所述请求文件所属的子表;步骤二,在所述子表中,确定所述树形结构中级数最小的客户端的数量;;步骤三,如果所述级数最小的客户端的数量为单个,则选择所述树形结构中级数最小的客户端作为所述代理服务器;如果所述树形结构中深度最小的客户端为多个,在多个级数最小的客户端中选择当前允许连接数量最大的客户端作为所述代理服务器。
在具体实施中,目标服务器具有预设拓扑表,所述预设拓扑表包含多个子表,每个子表与单个请求文件一一对应,每个子表包含所述代理客户端组中的每个客户端的当前允许连接数量。目标服务器可以根据所述请求文件的标识找到所述请求文件对应的子表。
目标服务器在树形结构的代理客户端组中选择代理服务器时,可以先选择级数最小的客户端作为代理服务器,如果级数最小的代理服务器有多个,在多个级数最小的客户端中选择当前允许连接数量最大的客户端作为代理服务器,以使得树形结构的代理客户端组的深度尽可能浅且同一级客户端的当前允许连接数量尽可能平均。
进一步地,所述代理服务器接收到所述请求客户端发送的连接请求后,与所述请求客户端建立连接。所述代理服务器也可以向所述请求客户端发送消息以告知请求客户端已与代理服务器建立连接。
在本发明一个非限制性的实施例中,请求客户端与代理服务器建立连接之后,目标服务器接收请求客户端发送的所述请求文件的标识、所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量,并将所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量添加至所述请求文件的子表中,以使得所述请求客户端加入所述代理客户端组,进而所述请求客户端可以成为后续请求所述请求文件的待连接客户端的代理服务器,从而增加共享文件的设备数量。
在本发明的一个非限制性实施例中,请求客户端与代理服务器建立连接之后,目标服务器接收所述代理服务器发送的所述请求文件的标识、所述代理服务器的IP地址和代理服务器当前允许连接数量;目标服务器可以根据所述请求文件的标识、所述代理服务器的IP地址在所述预设拓扑表中找到需要更新的代理服务器,并更新所述代理服务器的当前允许连接数量,从而使得所述请求文件所属的子表中的当前允许连接数量是最新的值。
进一步地,请求客户端与代理服务器连接之后,目标服务器还可以接收所述代理服务器发送的所述代理服务器的父节点的IP地址。
本领域技术人员可以理解,当所述代理客户端组中的客户端断开连接时,也可以将所述请求文件的标识、所述代理服务器的IP地址和代理服务器当前允许连接数量发送至目标服务器,以更新所述请求文件对应的子表。
在步骤S103的具体实施中,向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
具体而言,目标服务器选择代理服务器之后,可以向所述请求客户端发送指示信息以告知请求客户端向所述代理服务器请求所述请求文件。
所述指示信息可以包括所述代理服务器的IP地址,也可以是其他可以使请求客户端获知所述代理服务器的信息,在此不做任何限制。
进一步地,所述请求客户端接收到目标服务器发送的指示信息后,向所述代理服务器发送连接请求,所述连接请求可以是所述请求客户端向目标服务器发送的第一连接请求,也可以是包含所述请求文件的标识和存储路径的其他连接请求。
进一步地,所述代理服务器接收到所述请求客户端发送的连接请求后,可以与所述请求客户端建立连接。所述代理服务器也可以向所述请求客户端发送消息以告知请求客户端已与代理服务器建立连接。
参考图2,图2示出了本发明实施例中用于多设备的文件共享方法的应用场景示意图。
下面结合图2,对本发明实施例进行非限制性的说明。
客户端1至4均正在同步共享文件A,客户端5与客户端2建立了连接且已经接受完成所述共享连接A,因此,图2中的代理客户端组为客户端1至5。
客户端6为请求客户端,客户端6也想同步共享文件A,客户端6向目标服务器发送第一连接请求,目标服务器接收到第一连接请求后,判断当前建立连接的客户端的数量是否大于等于预设连接上限。假设图2中的目标服务器的预设连接上限为3,则当前建立连接的客户端的数量等于预设连接上限,目标服务器将在代理客户端组(也即客户端1至5)中选择当前允许连接数量最大的客户端作为代理服务器。
假设当前允许连接数量最大的客户端为客户端3,目标服务器选择客户端3作为代理服务器,目标服务器将客户端3的IP地址发送给客户端6,客户端6基于客户端3的IP地址向客户端3发送第一连接请求,客户端3接收第一连接请求后,与客户端6建立连接,并向客户端6共享文件A。可以理解的是,在后续共享文件的过程中,可以将客户端7(图未示)连接至客户端1,将客户端8(图未示)连接至客户端2,等等。
需要指出的是,如图2所示的目标服务器与客户端中,所述树形结构为3叉树结构,其中每个客户端都是3叉树中的节点。
进一步地,所述请求客户端与所述代理服务器建立连接后,向代理服务器发送读文件命令,所述读文件命令用于指示所述请求客户端请求所述请求文件的至少一部分。例如,所述读文件命令可以是(offset,length),offset表示请求客户端请求的所述请求文件的部分相对于所述请求文件的文件头的偏移量,length表示请求客户端请求的所述请求文件的部分的长度。
进一步地,所述代理服务器可以根据所述读文件命令判断是否已经向所述请求客户端发送过所述请求文件的至少一部分,如果是,则不处理所述读文件命令,从而可以避免重复的传输。
进一步地,所述代理服务器可以根据所述读文件命令判断请求客户端请求的请求文件为全部文件还是一部分文件,如果是全部文件,则发送完整的请求文件,如果是一部分文件,则发送所述请求文件的一部分。
进一步地,在树形结构的代理客户端组中,如果所述代理服务器的存储器中没有所述请求文件,所述代理服务器可以向其父节点请求所述请求文件。代理服务器收到父节点发来的文件后,可以直接向所述请求客户端发送,无需请求客户端再次发送读文件命令,从而可以避免请求过程带来的延时。
所述代理服务器与所述请求客户端建立连接后,也可以不告知请求客户端已与其建立连接,而直接根据所述连接请求中的请求文件的标识和请求文件的存储路径向请求客户端发送所述请求文件。
在本发明的一个非限制性实施例中,代理服务器可以通过传输控制协议(Transmission Control Protocol,TCP)协议向请求客户端发送所述请求文件的至少一部分,避免发送过程中出现丢包的情况。所述请求客户端收到所述请求文件后,可以将所述请求文件放入所述请求客户端的存储器中,可以设置所述存储器的过期时间和覆盖机制。
如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且所述正在共享的总文件数小于所述预设文件共享上限,目标服务器无需寻找代理服务器,可以直接与所述请求客户端建立连接并向所述请求客户端发送所述请求文件。
具体而言,目标服务器与所述请求客户端建立连接后,可以向所述客户端发送消息以告知请求客户端已与目标服务器建立连接。
进一步地,所述请求客户端接收到目标服务器发送的已建立连接的消息后,向目标服务器发送读文件命令。所述读文件命令用于指示所述请求客户端请求所述请求文件的至少一部分。
目标服务器与所述请求客户端建立连接后,也可以不告知请求客户端已与其建立连接,而直接根据所述第一连接请求中的请求文件的标识和请求文件的存储路径,在目标服务器的存储器中找到所述请求客户端请求的文件,并向请求客户端发送所述请求文件。所述存储器可以是目标服务器的本地存储器,也可以是与目标服务器连接的外部服务器。
图3是本发明实施例的另一种用于多设备的文件共享方法的流程图,可以由客户端执行,例如由音视频播放设备执行。
具体而言,由客户端执行的用于多设备的文件共享方法包括如下步骤:
步骤S301:向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
步骤S302:从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;
步骤S303:向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
本领域技术人员可以理解,所述步骤S301至步骤S303可以视为与上述图1所示实施例中的步骤S101至S103相呼应的执行步骤,两者在具体的实现原理和逻辑上是相辅相成的。因而,关于客户端一侧的用于多设备的文件共享方法的具体步骤及术语可以参考图1所述实施例的相关描述,这里不再赘述。
图4是本发明实施例的一种用于多设备的文件共享装置的结构示意图。本实施例中的用于多设备的文件共享方法的服务器可以包括接收模块41、查找模块42、发送模块43,其中:
接收模块41,用于从请求客户端接收第一连接请求,所述第一连接请求包含请求文件标识,所述标识用于唯一确定所述请求文件。
查找模块42,用于在当前建立连接的客户端的数量大于等于预设连接上限时,在代理客户端组中选择客户端作为代理服务器。
发送模块43,用于向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
关于所述一种用于多设备的文件共享装置的工作原理、工作方式的更多内容,可以参照上述图1中的相关描述,这里不再赘述。
图5是本发明实施例的另一种用于多设备的文件共享装置的结构示意图。本实施例中的另一种用于多设备的文件共享方法的装置可以包括第一发送模块51、接收模块52、第二发送模块53,其中:
第一发送模块51:用于向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
接收模块52:从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;
第二发送模块53:向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
关于另一种用于多设备的文件共享装置的工作原理、工作方式的更多内容,可以参照上述图3中的相关描述,这里不再赘述。
本发明实施例还提供一种用于多设备的文件共享的存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述图1所示的用于多设备的文件共享方法的步骤,以及上述图3所示的用于多设备的文件共享方法的步骤。
本发明实施例还提供一种用于多设备的文件共享的目标服务器,所述目标服务器包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1所示的用于多设备的文件共享方法的步骤。
本发明实施例还提供一种用于多设备的文件共享的客户端,所述客户端包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图3所示的用于多设备的文件共享方法的步骤。所述客户端包括但不限于手机、计算机、平板电脑等终端设备。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (23)
1.一种用于多设备的文件共享方法,其特征在于,包括:
从请求客户端接收第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
如果当前建立连接的客户端的数量大于等于预设连接上限,则在代理客户端组中选择客户端作为代理服务器;
向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
2.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,还包括:
如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端数量大于等于预设共享上限,则在所述代理客户端组中选择客户端作为所述代理服务器,并向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
3.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,还包括:
如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且正在共享的总文件数大于等于预设文件共享上限,则在所述代理客户端组中选择客户端作为所述代理服务器,并向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求。
4.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,还包括:
如果所述当前建立连接的客户端的数量小于所述预设连接上限,并且正在共享所述请求文件的客户端小于所述预设共享上限,并且所述正在共享的总文件数小于所述预设文件共享上限,则与所述请求客户端建立连接,并根据所述第一连接请求,向所述请求客户端共享所述请求文件。
5.根据权利要求4所述的用于多设备的文件共享方法,其特征在于,向所述请求客户端共享所述请求文件包括:
从所述请求客户端接收读文件命令,所述读文件命令用于指示所述请求客户端请求所述请求文件的至少一部分;
基于所述读文件命令,向所述请求客户端共享所述请求文件的至少一部分。
6.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,所述第一连接请求还包含所述请求文件的存储路径。
7.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,所述代理服务器组中的客户端构成树形结构,所述在代理客户端组中选择客户端作为代理服务器包括:
根据所述请求文件的标识,在预设拓扑表中查找所述请求文件所属的子表,其中,所述预设拓扑表包含多个子表,每个子表与单个请求文件一一对应;
在所述子表中,确定所述树形结构中级数最小的客户端的数量;
如果所述级数最小的客户端的数量为单个,则选择所述树形结构中级数最小的客户端作为所述代理服务器。
8.根据权利要求7所述的用于多设备的文件共享方法,其特征在于,所述每个子表包含所述代理客户端组中的每个客户端的当前允许连接数量,所述在代理客户端组中选择客户端作为代理服务器还包括:
如果所述树形结构中级数最小的客户端为多个,在多个级数最小的客户端中选择当前允许连接数量最大的客户端作为所述代理服务器。
9.根据权利要求7所述的用于多设备的文件共享方法,其特征在于,还包括:
从所述请求客户端接收所述请求文件的标识、所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量;
根据所述请求文件的标识,将所述请求客户端的IP地址、所述代理服务器的IP地址、所述请求客户端当前允许连接数量添加至所述请求文件所属的子表中。
10.根据权利要求7所述的用于多设备的文件共享方法,其特征在于,还包括:
从所述代理服务器接收所述请求文件的标识、所述代理服务器的IP地址和所述代理服务器当前允许连接数量;
根据所述请求文件的标识和所述代理服务器的IP地址,将所述代理服务器当前允许连接数量更新至所述请求文件所属的子表中。
11.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,所述用于多设备的文件共享方法用于目标服务器,在所述代理客户端组中选择客户端作为代理服务器之前,所述文件共享方法还包括:
按照建立连接的时间顺序,将待连接的客户端均连接至所述目标服务器,以形成所述代理客户端组。
12.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,所述用于多设备的文件共享方法用于目标服务器,在所述代理客户端组中选择客户端作为代理服务器之前,所述文件共享方法还包括:
按照建立连接的时间顺序,依次将待连接的客户端连接至所述目标服务器,直至达到所述目标服务器的允许连接数量的预设上限,记为第一级客户端;
如果所述第一级客户端的数量大于等于所述目标服务器的允许连接数量的预设上限,则确定当前允许连接数量最大的第一级客户端,记为第一级可选客户端;
依次将所述待连接的客户端连接至所述第一级可选客户端中的任意一个所述第一级可选客户端,直至与每个第一级客户端连接的客户端数量达到各自的允许连接数量的预设上限,记为第二级客户端;
如果与每个第N-1级客户端连接的客户端数量大于等于各自的允许连接数量的预设上限,则确定当前允许连接数量最大的第N级客户端,记为第N级可选客户端;
依次将所述待连接的客户端连接至所述第N级可选客户端中的任意一个,以形成所述代理客户端组,其中,N为正整数,N≥2。
13.根据权利要求1所述的用于多设备的文件共享方法,其特征在于,所述文件共享方法应用于局域网中,所述局域网包括有线局域网和无线局域网。
14.一种用于多设备的文件共享方法,其特征在于,包括:
向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;
向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
15.根据权利要求14所述的用于多设备的文件共享方法,其特征在于,向所述目标服务器发送读文件命令,所述读文件命令用于指示所述客户端请求所述请求文件的至少一部分;
从所述目标服务器接收共享所述请求文件的至少一部分。
16.根据权利要求14所述的用于多设备的文件共享方法,其特征在于,所述第一连接请求还包含所述请求文件的存储路径。
17.根据权利要求14所述的用于多设备的文件共享方法,其特征在于,还包括:
向所述目标服务器发送所述请求文件的标识、所述客户端的IP地址、所述代理服务器的IP地址、所述客户端当前允许连接数量,以使所述目标服务器根据所述请求文件的标识,将所述客户端的IP地址、所述代理服务器的IP地址、所述客户端当前允许连接数量添加至所述请求文件所属的子表中;其中,所述请求文件所属的子表属于预设拓扑表,所述预设拓扑表包含多个子表,每个子表与单个请求文件一一对应,每个子表包含所述代理客户端组中的每个客户端的当前允许连接数量。
18.根据权利要求14所述的用于多设备的文件共享方法,其特征在于,所述文件共享方法应用于局域网中,所述局域网包括有线局域网和无线局域网。
19.一种用于多设备的文件共享装置,其特征在于,包括:
接收模块,用于从请求客户端接收第一连接请求,所述第一连接请求包含请求文件标识,所述标识用于唯一确定所述请求文件;
查找模块,用于在当前建立连接的客户端的数量大于等于预设连接上限时,在代理客户端组中选择客户端作为代理服务器;
发送模块,用于向所述请求客户端发送所述代理服务器的指示信息,以使所述请求客户端向所述代理服务器发送所述第一连接请求;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
20.一种用于多设备的文件共享装置,其特征在于,包括:
第一发送模块,用于向目标服务器发送第一连接请求,所述第一连接请求包含请求文件的标识,其中,所述标识用于唯一确定所述请求文件;
接收模块,用于从目标服务器接收代理服务器的指示信息,所述代理服务器是在当前建立连接的客户端的数量大于等于预设连接上限时,所述目标服务器在代理客户端组中选择的客户端;
第二发送模块,用于向所述代理服务器发送所述第一连接请求,并在建立连接后从所述代理服务器共享所述请求文件;
其中,所述代理客户端组是正在共享所述请求文件的客户端以及当前建立连接的客户端中已接收所述请求文件的客户端。
21.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至13任一项所述用于多设备的文件共享方法的步骤,以及执行权利要求14至18任一项所述用于多设备的文件共享方法的步骤。
22.一种目标服务器,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至13任一项所述用于多设备的文件共享方法的步骤。
23.一种客户端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求14至18任一项所述用于多设备的文件共享方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011051312.7A CN112367351A (zh) | 2020-09-29 | 2020-09-29 | 用于多设备的文件共享方法及装置、目标服务器、客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011051312.7A CN112367351A (zh) | 2020-09-29 | 2020-09-29 | 用于多设备的文件共享方法及装置、目标服务器、客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112367351A true CN112367351A (zh) | 2021-02-12 |
Family
ID=74506467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011051312.7A Withdrawn CN112367351A (zh) | 2020-09-29 | 2020-09-29 | 用于多设备的文件共享方法及装置、目标服务器、客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367351A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217483A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 用于实现集群服务器内负载分担代理的方法 |
CN102594926A (zh) * | 2011-12-22 | 2012-07-18 | 华中科技大学 | 异构无线p2p网络文件共享系统及加速文件传输方法 |
EP2538637A2 (en) * | 2011-06-22 | 2012-12-26 | Telefonaktiebolaget L M Ericsson (publ) | Multi-path transmission control protocol proxy service |
US20160080529A1 (en) * | 2013-09-30 | 2016-03-17 | Tencent Technology (Shenzhen) Company Limited | Method and device for sending requests |
CN106302172A (zh) * | 2015-05-18 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 同时支持哈希查找和路由查找的存储、查找方法和装置 |
-
2020
- 2020-09-29 CN CN202011051312.7A patent/CN112367351A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217483A (zh) * | 2008-01-21 | 2008-07-09 | 中兴通讯股份有限公司 | 用于实现集群服务器内负载分担代理的方法 |
EP2538637A2 (en) * | 2011-06-22 | 2012-12-26 | Telefonaktiebolaget L M Ericsson (publ) | Multi-path transmission control protocol proxy service |
CN102594926A (zh) * | 2011-12-22 | 2012-07-18 | 华中科技大学 | 异构无线p2p网络文件共享系统及加速文件传输方法 |
US20160080529A1 (en) * | 2013-09-30 | 2016-03-17 | Tencent Technology (Shenzhen) Company Limited | Method and device for sending requests |
CN106302172A (zh) * | 2015-05-18 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 同时支持哈希查找和路由查找的存储、查找方法和装置 |
Non-Patent Citations (1)
Title |
---|
吴言华: "《分布式虚拟环境覆层结构与可扩充性研究》", 《中国博士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10609101B2 (en) | Streaming of segmented content | |
US8116235B2 (en) | Peer-to-peer aided live video sharing system | |
US9392081B2 (en) | Method and device for sending requests | |
CN111427527B (zh) | 投屏方法、装置、设备及计算机可读存储介质 | |
CN110266810B (zh) | 基于mqtt协议的消息接收方法、设备及存储介质 | |
CN103634312A (zh) | 一种基于音频共享实现多音频快速同步的设备管理方法 | |
KR20070049652A (ko) | P2p 모니터링 시스템에서 서버 존재에 대한 핑 동작 | |
US11005975B2 (en) | Rapid optimization of media stream bitrate | |
EP3750350B1 (en) | Unique service identifier for a message proxy in a service based architecture | |
CN113206894B (zh) | Dns服务器的发现方法、装置、计算机设备及存储介质 | |
EP4287591A1 (en) | Data transmission method and apparatus, and server, storage medium and program product | |
JP2012083891A (ja) | フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法 | |
US8892663B2 (en) | Apparatus and method for establishing partnership with a peer-to-peer (P2P) service based on gossip | |
CN108462733B (zh) | 一种文件加速传输方法及装置 | |
CN113055457B (zh) | 接入控制与数据转发方法、装置、电子设备及存储介质 | |
JP5552171B2 (ja) | ライブメディアストリームの時間シフト | |
CN112367351A (zh) | 用于多设备的文件共享方法及装置、目标服务器、客户端 | |
US20090028110A1 (en) | Seamless Establishment and Maintenance of Network Connections for Mobile Applications | |
WO2008007862A1 (en) | Method and system for connecting server to client or client to client in network for data transmitting service | |
US20120066292A1 (en) | Apparatus and method for controlling service mobility | |
CN113746884A (zh) | 一种多媒体资源的传输方法、装置和系统 | |
CN102215240B (zh) | 流媒体信令发送方法及设备、以及点对点流媒体系统 | |
CN111567132B (zh) | 电子装置及其控制方法 | |
KR101015961B1 (ko) | 가상서버를 이용한 스트리밍 장치 및 그 방법 | |
CN113747237B (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210212 |