数据分享系统及方法与流程

文档序号:12132488阅读:228来源:国知局
数据分享系统及方法与流程

本发明涉及一种数据分享系统及方法,特别是关于一种服务器向多个终端设备分享数据的系统及方法。



背景技术:

当需要从服务器下载更新软件或下载影像或视频等数据文件到一组电子装置(例如一个大公司内的多台网络电话机、客户端电脑等),这些电子装置通常是通过网络分别连接到服务器去下载。当所有电子装置同时连接到服务器下载数据时,会给服务器造成沉重的负担,而且,还可能造成网络拥堵。



技术实现要素:

鉴于以上内容,有必要提供一种数据分享系统及方法,能够利用分享树的方式将数据逐层传送至每一节点。

一种数据分享系统,运行于一第一电子装置中,该第一电子装置与多个其他电子装置相连以形成一个群组,所述的数据分享系统包括:下载模块,用于从服务器下载数据;广播模块,用于在所述群组内广播一“加入我们”封包以邀请所述其他电子装置加入一分享树,所述“加入我们”封包包括所述第一电子装置的识别信息,所述封包的类型,所述封包的内容;收养模块,用于判断是否接收到群组内一第二电子装置发出的“收养我”封包,所述“收养我”封包包括第二电子装置的识别信息及封包的类型,所述收养模块还用于在接收到“收养我”封包时判断 所述“收养我”封包的识别信息是否与所述第一电子装置相同,当所述“收养我”封包的识别信息与所述第一电子装置相同时,所述收养模块还用于基于一预定法则判断所述第二电子装置是否可成为所述第一电子装置的子节点,所述预定法则包括:一个父节点最多包括一个左节点和一个右节点,每一节点仅只有一个父节点;所述收养模块还用于在所述第二电子装置可成为所述第一电子装置的子节点时,建立所述第一电子装置与所述第二电子装置的连接;传送模块,用于传送所下载的数据至所述第二电子装置。

一种数据分享系统,运行于一第一电子装置中,该第一电子装置与多个其他电子装置相连以形成一个群组,所述的数据分享系统包括:孤儿模块,用于在接收到群组内一第二电子装置发出的“加入我们”封包时,判断所述“加入我们”封包的识别信息是否与所述第一电子装置相同,及在所述识别信息与所述电子装置相同时判断所述电子装置是否愿意加入一分享树,当所述第一电子装置愿意加入所述分享树时,使所述第一电子装置进入一“孤儿”状态,所述“孤儿”状态表明所述第一电子装置愿意加入一分享树;一被收养模块,用于在所述第一电子装置进入“孤儿”状态时开启一通信端口,并在所述群组内广播“收养我”封包,当收到来自一父节点的连线请求时通过所述通信端口与所述父节点建立连接,并在接收到来自父节点的“收养”封包时使所述第一电子装置进入“被收养”状态;及接收模块,用于在所述第一电子装置进入“被收养”状态时接收来自父节点的数据。

一种数据分享方法,应用于一第一电子装置中,该第一电子装置与多个其他电子装置相连以形成一个群组,所述的数据分享方法包括:从一服务器下载数据;在所述群组内广播一“加入我们”封包以邀请所述其他电子装置加入一分享树,所述“加入我们”封包包括所述第一电子 装置的识别信息,所述封包的类型,所述封包的内容;判断是否接收到群组内一第二电子装置发出的“收养我”封包,所述“收养我”封包包括第二电子装置的识别信息及封包的类型;在接收到“收养我”封包时判断所述“收养我”封包的识别信息是否与所述第一电子装置相同;当所述“收养我”封包的识别信息与所述第一电子装置相同时,基于一预定法则判断所述第二电子装置是否可成为所述第一电子装置的子节点,所述预定法则包括:一个父节点最多包括一个左节点和一个右节点,每一节点仅只有一个父节点;在所述第二电子装置可成为所述第一电子装置的子节点时,建立所述第一电子装置与所述第二电子装置的连接;及传送所下载的数据至所述第二电子装置。

一种数据分享方法,应用于一第一电子装置中,该第一电子装置与多个其他电子装置相连以形成一个群组,所述的数据分享方法包括:在接收到群组内一第二电子装置发出的“加入我们”封包时,判断所述“加入我们”封包的识别信息是否与所述第一电子装置相同;在所述识别信息与所述电子装置相同时判断所述电子装置是否愿意加入一分享树;当所述第一电子装置愿意加入所述分享树时,使所述第一电子装置进入一“孤儿”状态,所述“孤儿”状态表明所述第一电子装置愿意加入一分享树;在所述第一电子装置进入“孤儿”状态时开启一通信端口;在所述群组内广播“收养我”封包;当收到来自一父节点的连线请求时通过所述通信端口与所述父节点建立连接;在接收到来自父节点的“收养”封包时使所述第一电子装置进入“被收养”状态;及在所述第一电子装置进入“被收养”状态时接收来自父节点的数据。

相较于现有技术,本发明所述的数据分享系统及方法能够利用分享树将数据逐层传送,以便降低对服务器的存取量,同时避免造成网络拥堵。

附图说明

图1是本发明较佳实施例的数据分享架构示意图。

图2是本发明较佳实施例的分享树的示意图。

图3是本发明电子装置的较佳实施例的模块图。

图4是本发明电子装置的较佳实施例的另一模块图。

图5是本发明较佳实施例的数据封包的示意图。

图6是本发明较佳实施例的确定分享树的节点的规则的示意图。

图7是本发明数据分享方法的较佳实施例的流程图。

图8是本发明数据分享方法的较佳实施例的另一流程图。

图9是本发明数据分享方法的较佳实施例的再一流程图。

图10是本发明数据分享方法的较佳实施例的又一流程图。

图11是现有的数据分享架构示意图。

主要元件符号说明

电子装置 1,3,4,1101

服务器 2,1102

分享树 100

种子 10,600

非种子节点 12

父节点 120

子节点 122

第一数据分享系统 30

存储器 31,41

处理器 32,42

设置模块 301

下载模块 302

广播模块 303

收养模块 304

传送模块 305

错误模块 306

第二数据分享系统 40

孤儿模块 401

被收养模块 402

接收模块 403

传送模块 404

收养模块 405

错误模块 406

数据封包 500

组织ID字段 502

产品ID字段 504

群组ID字段 506

种子MAC字段 508

类型字段 510

主体内容长度字段 512

主体内容字段 514

种子的右子节点 602

种子的右子节点的左子节点 604

种子的右子节点的左子节点的右子节点 606

下面结合实施方式进行详细说明。

具体实施方式

参阅图11所示,是现有的数据分享架构示意图。在该架构中,多个电子装置1102,例如,网络电话,互联网协议电话(Voice Over Internet Protocol,VOIP)网关,客户端电脑等,与一服务器1100通过因特网或广域网(Wide Area Network,WAN)等网络进行连接。所述电子装置1102可通过局域网(Local Area Network,LAN)等网络进行连接。所述电子装置1102可分布在不同的LAN中。所述电子装置1102分别各自通过网络从所述服务器1100下载数据。

图1示出了本发明的数据分享架构的较佳实施例的示意图。多个电子装置1,例如网络电话,互联网协议电话(Voice Over Internet Protocol,VOIP)网关,客户端电脑等,与一服务器2通过因特网或广域网(Wide Area Network,WAN)等网络进行连接。所述电子装置1102可通过局域网(Local Area Network,LAN)等网络进行连接。所述电子装置1102可分布在不同的LAN中。位于同一LAN的电子装置1可设置为一组,该组电子装置可形成一分享树,其中一个电子装置可作为“种子”(也可称为分享树的根节点)与服务器2连接并从服务器2下载数据,该组内其他电子装置则作为分享树的节点从其父节点下载所述数据。所述分享树上的所有节点之间的数据分享采用端对端(Point-to-Point,P2P)分享方式。

图2示出了本发明分享树的较佳实施例的示意图。在该实施例中,所述分享树100可包括分层结构,即包括有多层节点。所述服务器2可与一个或多个分享树100连接以分享数据。每一分享树100可包括一“种子”10和至少一非种子节点12。所述种子10为所述分享树100的根节点,也是非种子节点12的父节点。所述非种子节点12也为多层结构,包括至少一父节点120和至少一子节点122。父节点120指至少包括一 个子节点的节点。每一子节点仅仅只有一个父节点,每一父节点可包括一个或两个子节点。

图3示出了本发明电子装置的较佳实施例的模块图。在该实施例中,所述电子装置为一“种子”。所述电子装置3可为网络电话,VOIP网关,个人电脑或其他任意适宜的客户端设备。

所述电子装置3可包括,但不限于,存储器31和处理器32。存储器31可为所述电子装置3的内部存储单元,例如,硬盘或内存,也可为插接式存储装置,例如:插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)。所述存储器31也可既包括内部存储单元也包括插接式存储装置。所述处理器32可为一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片。

第一数据分享系统30安装并运行于所述电子装置3中。在本实施例中,所述的第一数据分享系统30包括,但不仅限于,设置模块301、下载模块302,广播模块303,收养模块304,及错误模块305。本发明所称的功能模块是指一种能够被电子装置3的处理器32所执行并且能够完成固定功能的一系列程序指令段,其存储于电子装置3的存储器31中。

所述设置模块301可用于设置所述电子装置3的基本资料。所述电子装置3的基本资料包括,但不限于,媒体访问控制(Media Access Control,MAC)地址,IP地址,群组号(群组ID),产品号(产品ID),组织名(组织ID)。在该实施例中,IP地址分布在某一特定范围内的所述电子装置3可被视为一组。每一组被分配一群组号。产品号被用于识别不同的产品类型或不同规格的统一产品类型,例如电话机、个人计算机、打印机等。组织名可用于区别不同的组织,例如,公司名或部门名。所述设置模块301还用于设置所述电子装置3为一“种子”。

所述下载模块302用于从所述服务器2下载数据。

所述广播模块303用于在同一群组内广播通知该群组内的其他电子装置加入分享树。在本实施例中,所述广播模块303以一预定频率进行广播,例如每间隔100到300毫秒(ms)广播一次。

在本实施例中,所述电子装置3与同一群组内的电子装置之间传送的信息或数据可以封包的形式进行。图5示出了一种较佳实施例的封包格式。封包500定义了多个字段,包括发送封包的电子装置的识别信息,封包的类型,封包的内容。所述发送封包的电子装置的识别信息包括如下信息中的一个或多个:组织ID(组织名)502,产品ID(产品号)504,群组ID(群组号)506,及种子MAC Address(种子的MAC地址)508。可替代地或进一步地,所述识别信息还可包括发送封包的电子装置的IP地址。其中,所述组织ID(组织名)502,产品ID(产品号)504,群组ID(群组号)506的赋值可来源于发送封包的电子装置的基本资料。例如,如果是“种子”发送的封包,则封包的组织ID 502,产品ID 504,群组ID 506等字段的赋值与“种子”的基本资料中的组织名、产品号、群组号相同;如果是父节点发送的封包,则封包的组织ID 502,产品ID 504,群组ID 06等字段的赋值与父节点的基本资料中的组织名、产品号、群组号相同。种子MAC Address 508字段的赋值为发送封包的电子装置所在的群组的“种子”的MAC地址。在同一个群组内发送的所有封包,种子MAC Address 508字段的赋值都相同。

所述类型字段510表征封包的类型。在本实施方式中,封包的类型包括“加入我们”封包、“收养我”封包、“收养”封包、“数据”封包及“错误”封包,可分别赋予值“0X0”,“0X1”,“0X2”,“0X3”,“0X4”来标示。可以理解的是,赋值可为其他形式,如:文字、数字、字母或其结合等,只要能区分不同封包类型即可。

所述主体内容长度字段512和主体内容字段514表征的是封包的内容。对于不同的封包类型,主体内容长度字段512和主体内容字段514的值可不同。例如,对于“加入我们”封包,所述主体内容字段514的值可为对从服务器下载的数据的简要描述,包括:数据文件的大小,名字,或版本号等。此时,主体内容字段514的长度为可变的。主体内容长度字段512的值可即为可变的(Variable)。对于“收养我”封包,主体内容长度字段512和主体内容字段514可省略。对于“收养”封包,所述主体内容字段514可为发送所述“收养”封包的电子装置的“Last Bit”值,所述“Last Bit”值为所述电子装置在分享树中的层级。例如,“种子”的“Last Bit”值为“0”,“种子”的直接子节点的“Last Bit”值为“1”,子节点的“Last Bit”值为其父节点的“Last Bit”值加1。在本实施例中,所述主体内容长度字段512的值可为“1byte”。对于“数据”封包,所述主体内容字段514与所述主体内容长度字段512可与所述“加入我们”封包相同。对于“错误”封包,所述主体内容字段514可为错误的描述及发生的原因。在本实施例中,所述不同的错误可采用不同的代码(例如,数字、字母、文字或其结合)标示,所述主体内容长度字段512可为1“byte”。

所述收养模块304可用于让另一电子装置称为电子装置3的子节点。当一第一电子装置收到一第二电子装置发送的“收养我”封包时,所述第一电子装置的收养模块304首先判断所述第二电子装置是否可以成为第一电子装置的子节点,在第二电子装置能称为第一电子装置的子节点时与第二电子装置建立连接并传送“收养”封包至所述第二电子装置。其中判断第二电子装置是否能称为第一电子装置的子节点包括:判断所述“收养我”封包的识别信息是否与所述第一电子装置的基本资料相同,及所述第二电子装置是否满足一被收收养的特定法则(参图6所示)。

请参看图6,分享树中的每一节点具有一“Last Bits”值,代表该节点在分享树中的层级,子节点的“Last Bits”值为其父节点的“Last Bits”值加“1”。例如,“种子”600的“Last Bits”值为“0”,“种子”的直接子节点602的“Last Bits”值为“1”,所述节点602的直接子节点604的“Last Bits”值为“2”,所述节点604的直接子节点的“Last Bits”值为“3”。所述被收养的特定法则为:一个节点要成为一个父节点的子节点,必须满足:假定父节点的“Last Bits”值为“N”,则子节点的IP地址有N位最低有效字节(Least Significant Bits,LSB)与父节点相同,其中子节点的LSB的第N+1位的值为“0”时,为左子节点,为“1”时,为右子节点。例如:一节点(电子装置)的IP地址为“192.168.0.53”,所述节点的LSB为“53”,换算成二进制(Binary)为“110101”。由于第一位LSB为“1”,当“种子”无右节点时,该节点可成为“种子”的右节点602。如果“种子”的右节点602已经存在,且节点602的左节点为空时,由于该节点的LSB最后两位为“01”,则该节点可成为节点602的左节点604。如果节点602的左节点604已经存在,且节点604的右节点为空时,由于该节点的LSB最后三位为“101”,则该节点可成为节点604的右节点。

所述第一电子装置的“收养”模块304判断第二电子装置是否满足所述预定法则时包括:所述“收养”模块首先确定所述第二电子装置的IP地址的N位LSB是否与第一电子装置相同(假定第一电子装置的“Last Bits”为“N”)。如果所述第二电子装置的IP地址的N位LSB与第一电子装置不相同,则第二电子装置不能成为第一电子装置的子节点。如果所述第二电子装置的IP地址的N位LSB与第一电子装置相同,则所述“收养”模块304根据所述第二电子装置的IP地址的LSB的第N+1位的值确定所述第二电子装置在分享树上所对应的位置,例如第一电子 装置的左节点或右节点。最后,所述“收养”模块304确定该对应的位置上是否已经存在一个子节点。如果该对应的位置上没有子节点,则该第二电子装置可成为该第一电子装置的子节点,否则,该第二电子装置不能成为该第一电子装置的子节点。

所述错误模块305可用于当下载出现错误时传送“错误”封包至对应的子节点。例如,所述错误可包括:所述电子装置3与服务器的连接断开,下载失败,或下载的数据错误等。

图4示出了本发明电子装置的另一实施例的模块图。在该实施例中,所述电子装置4不是“种子”。所述电子装置4可为网络电话、VOIP网关、个人计算机、打印机或其他任何适宜的客户端装置。

所述电子装置4可包括,但不限于,一存储器41和一处理器42。所述存储器41与上述存储器31类同,所述处理器42与所述处理器32类同,在此不再赘述。

第二数据分享系统40安装并运行于所述电子装置4中。在本实施例中,所述的第一数据分享系统40包括,但不仅限于,孤儿模块401,被收养模块402,接收模块403,传送模块404,收养模块405及错误模块406。

所述孤儿模块401可用于使所述电子装置4从一“正常”状态进入一“孤儿”状态。在本实施例中,所述电子装置3或4可包括四个状态:“正常”状态,“种子”状态,“孤儿”状态及“被收养”状态。所述正常状态为缺省状态。当电子装置连接至服务器并从服务器下载数据时,所述电子装置进入“种子”状态。所述“孤儿”状态标示所述电子装置同意加入分享树。所述“被收养”状态标示所述电子装置已经成为分享树的一个节点。

当电子装置4收到“种子”发出的“加入我们”封包,所述孤儿模 块401确定所述“加入我们”封包的识别信息是否与所述电子装置4相同,及当述“加入我们”封包的识别信息与所述电子装置4相同时确定所述电子装置4是否愿意加入分享树。所述孤儿模块401确定所述电子装置4是否愿意加入分享树可基于用户的选择或一预先确定的规则,例如,版本比较,当版本不相同时表示愿意加入分享树。当所述电子装置4愿意加入分享树时,所述电子装置4进入“孤儿”状态。

所述被收养模块402用于使得所述电子装置4从“孤儿”状态进入“被收养”状态。所述被收养模块402首先开启所述电子装置4的通信端口(例如:TCP端口,在其他实施方式中,也可为其他类似的通信端口),并在所属群内广播所述“收养我”封包。在本实施例中,所述被收养模块402以一预定频率广播该“收养我”封包,例如每100~300毫秒(ms)广播一次。所述被收养模块402在收到来自父节点的连接请求时(例:TCP连接请求),建立所述电子装置4与所述父节点之间的连接。所述电子装置4与所述父节点之间的连接建立后,所述电子装置4将停止广播“收养我”封包及停止接收来自其他父节点的连接请求。当收到来自父节点的“收养”封包时,所述被收养模块402可使得所述电子装置4进入“被收养”状态。

所述接收模块403用于从父节点接收数据。

所述传送模块404用于传送数据至所述电子装置4的子节点,当电子装置4有子节点时。

所述收养模块405用于收养其他电子装置称为所述电子装置4的子节点。所述收养模块405的工作方式类同于所述收养模块304,在此不赘述。

所述错误模块406类同于所述错误模块305,在此不赘述。

参阅图7所示,是本发明数据分享方法的较佳实施例的流程图。在 该实施例中,所述方法700为电子装置为种子时所执行的方法。根据不同需求,该流程图中步骤的顺序可以改变,某些步骤可以省略或合并。

步骤702,所述电子装置连接至所述服务器下载数据。所述数据可为影像、音频、视频、软件、文字等。与此同时,所述电子装置进入“种子”状态。

步骤704,所述电子装置确定所述电子装置的群组号是否等于零。在本实施例中,群组号等于零标示该电子装置没有群组关系。如果所述电子装置的群组号为零,流程结束;如果所述电子装置的群组号不为零,流程进入步骤706。

步骤706,所述电子装置在所属群组内广播“加入我们”封包,所述“加入我们”封包基于用户数据报协议(User Datagram Protocol,UDP)。

步骤708,所述电子装置确定所述电子装置是否收到第二电子装置发出的“收养我”封包。如果收到“收养我”封包,流程进入步骤710,否则,流程返回步骤706。

步骤710,所述电子装置确定所述电子装置是否收养第二电子装置成为其子节点。具体地,所述电子装置确定所述“收养我”封包的识别信息是否与所述电子装置相同,当所述“收养我”封包的识别信息与所述电子装置相同时,所述电子装置进一步确定所述第二电子装置是否满足被收养的预定法则(如图6所示)。如果第二电子装置满足被收养的预定法则,则表明第二电子装置可成为所述电子装置的子节点,流程进入步骤712,否则,流程返回到步骤708。

步骤712,所述电子装置建立与所述子节点(第二电子装置)的通信连接(例如:TCP连接)。具体地,所述电子装置首先发送一连接请求至所述子节点,当所述子节点接受所述连接请求时建立与所述子节点的通信连接。

步骤714,所述电子装置发送“收养”封包至子节点,所述“收养”封包包括所述电子装置的“Last Bits”。

步骤716,所述电子装置确定在从服务器下载数据的过程中是否发生错误,例如与服务器断开,下载失败,或下载数据错误等。当下载出现错误时,流程进入步骤722,否则所述流程进入步骤718。

步骤718,所述电子装置传送“数据”封包至子节点。从服务器下载的数据可作为“数据”封包的附件与“数据”封包同时传送。

步骤720,所述电子装置确定所述数据是否成功下载完成,如果成功下载完成,所述流程进入步骤724,否则流程返回步骤718。

步骤724,所述电子装置断开与所述子节点的通信连接。

步骤726,所述电子装置进入“正常”状态。

图8示出了本发明数据分享方法较佳实施例的另一流程图。所述方法800可被一非“种子”的电子装置执行。

步骤802,所述电子装置确定是否收到“种子”发出的“加入我们”封包。如果所述电子装置收到“加入我们”封包,所述流程进入步骤804,否则所述流程返回步骤802。

步骤804,所述电子装置确定所述“加入我们”封包的识别信息是否与所述电子装置相同。如果所述“加入我们”封包的识别信息与所述电子装置相同,流程进入步骤806,否则,流程返回步骤802。

步骤806,所述电子装置判断所述电子装置是否愿意加入分享树。所述电子装置判断所述电子装置是否愿意加入分享树可基于用户的选择或一预定的规则来进行判断。所述预定的规则例如:版本比较,版本不相同时表明愿意加入分享树,版本相同时表明不愿意加入分享树。如果所述电子装置愿意加入分享树,流程进入步骤808,否则,流程返回步骤802。

步骤808,所述电子装置进入“孤儿”状态。

图9示出了本发明数据分享方法的较佳实施例的再一流程图。所述方法900可被一进入“孤儿”状态的电子装置执行。

步骤902,所述电子装置开启通信端口,例如TCP端口。

步骤904,所述电子装置在所属群组内广播“收养我”封包。在该实施例中,所述电子装置以一预定频率广播该“收养我”封包,例如,每100~300毫秒(ms)广播一次。所述“收养我”封包基于UDP。

步骤906,所述电子装置判断是否收到来自父节点的连接请求,如果收到来自父节点的连接请求,所述流程进入步骤908,否则,所述流程进入步骤918。

步骤908,所述电子装置建立与所述父节点的通信连接。与父节点的通信连接建立后,所述电子装置停止广播“收养我”封包及停止接收来自其他节点的连接请求。

步骤910,所述电子装置判断是否收到来自父节点的“收养”封包。如果收到来自父节点的“收养”封包,流程进入步骤912,否则,流程进入步骤914。

步骤912,所述电子装置进入“被收养”状态。同时,所述电子装置的“Last Bits”为其父节点的“Last Bits”加1。

步骤914,所述电子装置判断所述端口开启超过预定时间,例如,10秒。如果所述端口开启超过预定时间,流程进入步骤916,否则流程返回步骤910。

步骤916,所述电子装置关闭所述端口,所述电子装置进入“正常”状态。

步骤918,所述电子装置判断所述端口开启超过预定时间,例如,10秒。如果所述端口开启超过预定时间,流程进入步骤916,否则流程 返回步骤906。

图10示出了本发明数据分享方法的较佳实施例的又一流程图。所述方法1000被一进入“被收养”状态的电子装置执行。

步骤1002,所述电子装置判断是否收到来自父节点的“数据”封包,当所述电子装置接收到来自父节点的数据封包时,流程进入步骤1004,否则,流程进入步骤1018。

步骤1004,所述电子装置停止接收其他电子装置发出的“收养我”封包。

步骤1006,所述电子装置从所述父节点接收所述“数据”封包及数据。当所述电子装置存在子节点时,传送所接收到的数据封包及数据至所述电子装置的子节点。

步骤1008,所述电子装置判断从父节点接收数据时是否发生错误,所述错误包括:与父节点的连接断开,接收失败,或接收的数据错误等。如果从父节点接收数据错误,流程进入步骤1012,否则,流程进入步骤1010。

步骤1010,所述电子装置判断从父节点接收数据是否成功完成,如果成功完成,流程进入步骤1014,否则流程返回步骤1006。

步骤1012,所述电子装置传送“错误”封包至所述子节点以通知子节点该错误。

步骤1014,所述电子装置断开与所述父节点的连接。

步骤1016,所述电子装置进入“正常”状态。

步骤1018,所述电子装置判断是否接收到来自一第四电子装置的“收养我”封包。如果接收到所述“收养我”封包,流程进入步骤1020,否则,流程返回步骤1002。

步骤1020,所述电子装置判断是否收养所述第四电子装置成为其子 节点。具体地,所述电子装置判断所述“收养我”封包的识别信息是否与所述电子装置相同。当所述“收养我”封包的识别信息与所述电子装置相同时,所述电子装置判断所述第四电子装置是否满足图6所示的被收养的预定法则。如果所述第四电子装置满足图6所示的被收养的预定法则,则所述第四电子装置可以被所述电子装置收养成为其子节点,流程进入步骤1022,否则流程返回步骤1002。

步骤1022,所述电子装置建立与所述子节点(第四电子装置)的连接,例如TCP连接。

步骤1024,所述电子装置传送“收养”封包至子节点(第四电子装置)。所述“收养”封包包括所述电子装置的“Last Bits”值。

本发明的数据分享系统及方法,通过分享树的方法将数据逐层传送,服务器仅需传送数据给所述分享树的根节点即可,不需要所有的电子装置都连接至服务器去下载数据,降低了服务器的负荷,同时也避免了多台电子装置同时下载造成的网络拥堵。

以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换都不应脱离本发明技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1