一种点对点下载的方法及装置的制作方法

文档序号:7915984阅读:92来源:国知局
专利名称:一种点对点下载的方法及装置的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种点对点下载的方法及装置。
背景技术
随着通信技术的不断发展,通信领域中对于资源共享的要求越来越 高,在网络互联中,接入网络的计算机都可以从其他计算机中下载需要 的资源,其中,在网络中普遍存在的下载方法一般是基于客户端-服务器(Client/Server, C/S)模式的,C/S模式是一种软件系统体系结构,通过 C/S模式可以充分利用硬件环境的优势,将任务合理分配到Client端和 Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 C/S形式的两层结构,所述服务器为在网络环境下运行相应的应用软件, 为网上用户提供共享信息资源和各种服务的计算机,通常采用高性能的 个人计算机(Personal Computer, PC)、工作站或小型机,并可以采用大 型数据库系统,如ORACLE、 SYBASE、 InfORMix或SQL Server,而客户 端则相应地需要安装专用的客户端软件。服务器一般都可以给用户提供不同需求的下载文件,现在技术中有 一种基于客户端-服务器模式的下载方法,其中,每个客户端都可以从服 务器获取文件的下载,当客户端需要更新文件时,就会向远程服务器发 送下载请求,当服务器接收到所述下载请求后,会根据下载请求的内容, 查询存储的相应文件信息,若能够查询到所述客户端需要更新的文件信 息时,便将查询到的文件实时返回至客户端,这样就实现了客户端从服 务器下载文件的过程。但是,这种方法也存在缺点,可以看出,下载文件的速度一般是根 据网络情况实时改变的,如果客户端与服务器不在一个局域网内,特别 是当许多客户端同时下载大文件时,客户端的下载速度受到很大的限制,使得很多客户端的下载速度都及其緩慢,进一步的,如果服务器没 有客户端所需的文件,那么客户端就不能再下载文件,服务器需要保证 二十四时都能运行,以提供文件给需要的客户端下载,这种运行方式给 服务器造成了很大的负荷,使得服务器的性能较差,再者,网络管理工 作人员既要对服务器维护管理,又要对客户端维护和管理,需要的维护 成本4艮高o总之,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够提出一种点对点下载的方法,用以解决在客户端的下载过程中需 要从远程服务器下载文件使得下载速度较慢的问题。发明内容本发明所要解决的技术问题是提供一种点对点下载的方法,用以解 决在从远程服务器下载文件的过程中下载速度较慢的问题,进一步的, 还可以减轻服务器的负荷,提升服务器的性能。本发明的另一个目的是将上述构思应用于具体的应用环境中,提供 一种点对点下载的装置,从而保证该方法的实现和应用。为解决上述技术问题,本发明实施例提供了一种点对点下载的方 法,包括第一客户端向第一代理服务器发送文件下载的请求参数,所述请求 参数包括需要下载的文件信息;根据所述请求参数,所述第一代理服务器向所述第一客户端所处的 局域网内的其他客户端发送用户数据包协议UDP消息,所述UDP消息 包括所述请求参数;所述第 一代理服务器接收到所述局域网内的第二客户端的反馈消 息之后,将所述请求参数转发至所述第二客户端的第二代理服务器;所述第二代理服务器根据所述请求参数查找相应的存储文件,并将 所述存储文件返回至第一代理服务器;所述第一客户端保存所述存储文件。优选的,还可以包括启动所述第一客户端所在局域网的所有客户端的代理服务器。 优选的,所述启动所述第一客户端所在局域网的所有的客户端的代理服务器的步骤包括当操作系统开始运行时,启动所述第 一客户端所在局域网的所有客 户端的代理服务器。优选的,所述启动所述第 一客户端所在局域网的所有的客户端的代 理服务器的步骤包括所述第 一客户端所在局域网的所有更新组件启动所述局域网的所 有代理服务器。优选的,其特征在于,所述文件信息包括所述需要下载的文件名称 和第一 MD5值。优选的,所述第一客户端保存所述存储文件的步骤之后,还包括 生成所述存储文件的第二 MD5值。 优选的,还包括比较所述第一MD5值和第二MD5值,若两个值相同,则所述存储文 件与所述第一客户端需要下载的文件为同一文件,若两个值不同,则所述 存储文件与所述第一客户端需要下载的文件为不同的文件。 本发明实施例还提供了 一种点对点下载的系统,包括 第 一客户端,所述第 一客户端包括发送请求参数模块和保存文件模块,所述发送请求参数模块用于向已经启动的第一代理服务器发送文件 下载的请求参数,所述请求参数包括需要下载的文件信息;所述保存文 件模块用于保存从第二客户端下载的存储文件;第一代理服务器,所述第一代理服务器包括发送广播消息模块、接 收反馈消息模块和转发请求参数模块,所述发送广播消息模块用于根据 所述请求参数,向所述第一客户端所处的局域网内的其他客户端发送 UDP消息,所述UDP广播消息包括所述请求参数;所述接收反馈消息 模块用于接收所述局域网内的第二客户端的反馈消息;所述转发请求参 数模块用于在接收反馈消息模块接收到所述反馈消息后,将所述请求参 数转发至所述第二客户端的第二代理服务器;第二代理服务器,所述第二代理服务器包括查找模块和返回模块, 所述查找模块用于根据所述请求参数在第二客户端中查找相应的存储文件,所述返回模块用于将所述存储文件返回至第一代理服务器;第二客户端,用于向所述第二代理服务器提供所述相应的存储文件。优选的,还包括启动装置,用于启动所述第一客户端所在局域网的所有客户端的代 理服务器。优选的,还包括生成装置,用于生成所述存储文件的第二MD5值。 优选的,还包括比较装置,用于比较所述第一 MD5值和第二 MD5值,若两个值相 同,则所述存储文件与所述第一客户端需要下载的文件为同一文件,若两 个值不同,则所述存储文件与所述第 一客户端需要下载的文件为不同的文 件。与现有技术相比,本发明具有以下优点在本发明实施例中,第 一客户端的第 一代理服务器向同 一局域网内 的其他代理服务器发送UDP消息,所述UDP消息包括需要下载的文件 参数,从而无需登录远程服务器,当其他代理服务器接收到所述UDP 消息后,会根据所述消息中的文件名称以及MD5值,查找相应的存储 文件,若能查找到相应的文件,便将信息反馈给所述第一代理服务器, 通知第一代理服务器到存储有相应的存储文件的第二代理服务器下载 文件,本发明可以将远程服务器下载变为局域网内下载,局域网内的下 载速度大大高于广域网上的下载速度,因此极大地提高了文件的下载速 度。


图1是本发明的一种点对点下载的方法实施例1的流程图; 图2是本发明的一种点对点下载的方法实施例2的流程图;图3是本发明的 一 种点对点下载的系统优选实施例的结构框图; 图4是应用图3所示的系统优选实施例进行点对点下载的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合 附图和具体实施方式
对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如个 人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处 理器系统、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的 一般上下文中 描述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定 抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分 布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模参考图1,示出了本发明的一种点对点下载的方法实施例1的流程 图,可以包括以下步骤步骤101:第一客户端向第一代理服务器发送文件下载的请求参数, 所述请求参数包括需要下载的文件信息;步骤102:根据所述请求参数,所述第一代理服务器向所述第一客 户端所处的局域网内的其他客户端发送用户数据包协议(User Datagram Protocol, UDP )消息,所述UDP消息包括所述请求参数;步骤103:所述第一代理服务器接收到所述局域网内的第二客户端 的反馈消息之后,将所述请求参数转发至所述第二客户端的第二代理服 务器;步骤104:所述第二代理服务器根据所述请求参数查找相应的存储 文件,并将所述存储文件返回至第一代理服务器; 步骤105:所述第一客户端保存所述存储文件。需要说明的是,所述文件信息可以包括所述需要下载的文件名称和第一 MD5值,所述MD5为信息-摘要算法(Message-Digest Algorithm 5 ), 通常情况下,MD5的作用是,让大容量信息在用数字签名软件签署私人 密匙前被"压缩"成一种保密的格式。在实际中,每个文件都有一个固 定的MD5值,文件内容一旦发生改变,文件的MD5值也会相应地发生 变化,因此,当所述文件信息包括了文件名称和MD5值的时候,同一 局域网的其他客户端就可以根据所述文件信息的内容查询相应的文件。在实际应用中,客户端代理服务器的实现可以有多种办法,本实施 例可以利用bat文件启动一个java程序,所述java程序可以完成代理服 务的功能,可以接受其他客户端下载文件的请求,也可以理解为远程下 载服务器在本机的一个代理,以便在从局域网内搜索文件时,能够使得 局域网内的其他客户端搜索到。可以看出,在本实施例中,第一客户端的第一代理服务器通过向同 一局域网内的其他代理服务器发送UDP消息,从而无需登录远程服务 器,当其他代理服务器接收到所述UDP消息后,会根据所述消息中的 文件名称以及MD5值,查找相应的存储文件,若能查找到相应的文件, 便将信息反馈给所述第一代理服务器,从而通知所述第一代理服务器到 存储有相应的存储文件的第二代理服务器下载文件,本发明实施例可以 将远程服务器下载变为局域网内下载,局域网内的下载速度大大高于广 域网上的下载速度,因此极大地提高了文件的下载速度。进一步的,本 发明实施例将多个客户端从服务器的下载方式转化为客户端之间的点 对点下载,还可以减轻服务器的处理负荷,提高了服务器的性能。参考图2,示出了本发明的一种点对点下载的方法实施例2的流程 图,可以包括以下步骤步骤201:启动所述第一客户端所在局域网的所有客户端的代理服务器;在实际应用中,每一个客户端都需要启动代理服务器,优选的,所述步骤201可以为当操作系统开始运行时,启动所述第一客户端所在局域网的所有客户端的代理服务器;或者,优选的,所述步骤201也可以为所述第 一客户端所在局域网的所有更新组件启动所述局域网的所 有代理服务器;步骤202:第一客户端向第一代理服务器发送文件下载的请求参数, 所述请求参数包括需要下载的文件信息;步骤203:根据所述请求参数,所述第一代理服务器向所述第一客 户端所处的局域网内的其他客户端发送UDP消息,所述UDP消息包括 所述请求参数;步骤204:所述第一代理服务器接收到所述局域网内的第二客户端 的反馈消息之后,将所述请求参数转发至所述第二客户端的第二代理服务器;步骤205:所述第二代理服务器根据所述请求参数查找相应的存储 文件,并将所述存储文件返回至第一代理服务器; 步骤206:所述第一客户端保存所述存储文件; 步骤207:生成所述存储文件的第二MD5值;在本实施例中,所述第一客户端保存所述存储文件之后,还可以生 成所述存储文件的第二 MD5值; 优选的,本实施例还可以包4舌步骤208:比较所述第一MD5值和第二MD5值,若两个值相同,则 所述存储文件与所述第一客户端需要下载的文件为同一文件,若两个值不 同,则所述存储文件与所述第 一客户端需要下载的文件为不同的文件。生成所述第二 MD5值之后,可以对第—一 MD5值和第二 MD5值进行 比较,若两个值相同,则所述存储文件与所述第一客户端需要下载的文件 为同一文件,若两个值不同,则所述存储文件与所述第一客户端需要下载 的文件为不同的文件,从而对所述第 一客户端下载的存储文件进行校验, 若不是所述第一客户端需要下载的文件,需要重新下载。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其10都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并 不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其 他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所 描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发 明所必须的。为使本领域技术人员更好地理解本发明,以下结合本发明在实际中 应用的具体例子对本发明进一步说明。点对点(Point to Point, P2P )下载是一种下载术语,可以理解为每 个客户端除了可以从其他客户端下载文件外,还可以向其他客户端提供 文件下载的功能。同时,点对点下载为一种对等互联网络技术, 一种用 于不同PC用户之间,不经过中继设备直接交换数据或服务的技术。在 P2P网络中,PC用户可以直接连接到其他用户的计算机,而不需要连接 到服务器上再进行浏览与下载。步骤Al:启动所述第一客户端所在局域网的所有客户端的代理服务器;其中,本步骤的说明详见方法实施例2,在此不再赘述;本步骤的 目的可以使所述局域网内的每一个客户端都可以处理下载请求,需要说 明的是,本地的代理服务还可以理解为一种socket监听,它会监听指定 端口请求,当局域网的一台客户端需要下载文件时,首先连接它自身的 代理服务,即建立一种本地的socket连接,其中,所述代理服务器具备 接收下载请求、接收局域网内的UDP广4番消息,以及发送局域网内的 UDP消息的功能;步骤A2:第一客户端向已经启动的第一代理服务器发送文件下载 的请求参数,所述请求参数包括需要下载的文件信息;在实际中,所述客户端都包括更新组件(updater)和代理服务器 (download proxy),当客户端的更新组件需要更新文件时,就向已经启 动的所述第一代理服务器发送文件下载的请求参数,其中,所述请求参 数可以包括需要下载的文件名称,本地存》丈路径,MD5值等,在实际中,所述请求参数可以为fileName : lib\client\eas\ bd—account, client.jar , localPath: E:\kingdeel71\eas\client, md5: dl3ab90972a7b6f2f651879e44e95b02其中,发送请求参数的示例代码可以如下所示url = "http:〃" + proxyServer + 7" + url;URL u = new URL ( url); URLConnection cn = u.openConnection (); cn.addRequestProperty ("localPath", localPath); cn.addRequestProperty ("msgVersion", "1.0"); cn.addRequestProperty ("fileName", fileName); cn.addRequestProperty ( "isSelf', "true"); if (md5!=null&&md5.length ( ) >0 )cn.addRequestProperty (MD5,md5.toLowerCase ());cn.co皿ect ();步骤A3:根据所述请求参数,所述第一代理服务器向所述第一客 户端所处的局域网内的其他客户端发送UDP消息,所述UDP消息包括 所述请求参数;所述第一代理服务器接收到所述请求参数之后,根据消息参数的内 容,例如,需要下载的文件名称和MD5值等,向所述局域网内部的其 他代理服务器发送UDP消息,所述UDP消息包括所述请求参数;其中,UDP协议与TCP协议之间的不同之处,在于UDP协议不 是一种基于稳定连接的通讯协议;UDP协议将独立的数据包从一台计 算机传输到另外 一 台计算机,但是并不保证接受方能够接收到该数据 包,也不保证接收方所接收到的数据和发送方所发送的数据在内容和顺 序上是完全一致的;因此,UDP协议更类似于普通邮政服务,寄信人 不能够保证所寄出去的信能够被收信人及时收到,后发出的信也许会比先发出的信更早到达;在通用的以太网(Ehternet)构架下,计算机与计算机之间的数据交 换都是通过交换机来完成的;如果一份数据需要被传送给多个接收者, 在使用TCP/IP连接的情况下,数据发送者需要向交换机发送多个同样 的拷贝,而交换机则负责将这多个拷贝分别发送给所有的接收者;在使 用UDP数据广播的情况下,数据发送者只需要向交换机发送一个拷贝, 交换机负责将这个信息制作多个拷贝发送给所有的机器,在这种情况 下,使用TCP/IP连接会大大的增加网络的负担;在一个普通局域网中, 可以认为由于网络状况较差而造成数据丢失的可能性比较小,而利用 UDP协议进行数据交换能够大幅度减轻网络的负担,因此通过UDP协 议向局域网内广播不会造成网络的阻塞,且可以很快的搜到需要下载文 件,因此本发明采用UDP广播的方式;发送UDP广播的示例代码如下 sock = new DatagramSocket ( Config.MESSAGE—CLIENT—PORT , Util.getlnetAddress ( Config.subnetMask ));DatagramPacket pack = new DatagramPacket (data, 0, data.length, InetAddress.getByName ( Config.MESSAGE—UDP—GROUP ), Config.MESSAGE—SERVER—PORT ); sock.send ( pack);所述UDP消息的内容可以为需要下载的文件名和文件的MD5值, 其中,服务socket可以如下所示sock = new MulticastSocket ( new InetSocketAddress ( addr, port));sock.joinGroup (InetAddress.getByName (Config.MESSAGE—UDP—GROUP ));步骤A4:所述局域网内的第二代理服务器接收到所述UDP消息, 当在緩存文件中查询到所述需要下载的文件时,向所述第一代理服务器 返回消息;需要说明的是,当所述第一代理服务器向局域网内其他代理服务器 发送UDP消息时,其他代理服务器都会根据所述UDP消息从緩存文件中进行查询,所述緩存文件会在代理服务器启动的时候加载到内存中,用哈希表(HashTable)的形式进行存放,可以理解为key值为MD5值, value为文件的路径,其中,查询步骤的代码可以如下所示public static String getMd5File ( String md5 ){ If ( ht!=null)return ht.getProperty( md5 ); 〃获取緩存里是否有MD5 值对应的文件存在;} return null;当某一个代理服务器查询到保存有所述需要下载的文件,且MD5 值正确,就所述第一代理服务器返回消息,以通知所述第一客户端;需要说明的是,当有多台客户端都保存有所述需要下栽的文件时, 其他客户端的代理服务器随即返回消息,当有一台客户端的代理服务器 反馈消息之后,所述第 一客户端的第 一代理服务器即便接收到其他客户 端的代理服务器的反馈消息,也将该反馈消息视为无效消息,不做任何 处理,或者,也可以按照优先级的顺序,优先对某一个固定的客户端进 行查询,当这个客户端不存在所述需要下载的文件时,才到所述局域网 内的其他客户端上进行下载,所述第一客户端到哪一个客户端去下载需 要的文件并不影响本发明的实现,因此本发明对此不做限定;步骤A5:所述第一代理服务器接收到所述局域网内的第二客户端 的反馈消息之后,将所述请求参数转发至所述第二客户端的已经启动的 第二代理服务器;所述第一代理服务器创建一个与所述第二代理服务器的socket连 接,并将所述的请求参数通过所述连接发送给所述第二代理服务器;步骤A6:所述第二代理服务器根据所述请求参数查找相应的存储 文件,并将所述存储文件返回至第一代理服务器;所述第二代理服务器在緩存文件中查找到相应的存储文件,所述第 一代理服务器以流的形式写入所述存储文件;步骤A7:所述第一客户端保存所述存储文件; 所述第一客户端将所述存储文件保存下来,则下载任务完成; 在本例子中,代码可以如下所示private void saveFile (URLConnection cn, DownloadTask task) throws Exceptionif ( !isSelf) return;boolean downloading = false;InputStream in = cn.getlnputStream (); 〃,人创建的连冲矣读取输入流File tempFile = null; long hasDownloaded = 0; trytask.totalBytes = cn.getContentLength (); File destFile = new File ( localPath + fileName ); if ( !destFile.getParentFile ( ) .exists ( )) { destFile.getParentFile ( ) .mkdirs ();tempFile = new File ( localPath十fileName+".rs"); RandomAccessFile tmpFile = new RandomAccessFile (tempFile,"rw"); \\ 创建本地临时文件hasDownloaded = tmpFile.length (); if ( hasDownloaded > 0 ) {System.out.println ( "Continue download file[" + fileName + "] by proxy from break point [" + hasDownloaded + "]......");15tmpFile.seek ( hasDownloaded隱1 );byte[] buf = new byte[4096]; long bytesDownloaded = 0; for (;;)int len = in.read ( buf); if (len<=0) break;tmpFile.write ( buf, 0, len); W把输入流写入文件 bytesDownloaded += (long ) len; task.bytesDownloaded = bytesDownloaded;tmpFile.close (); downloading = true;if ( downloading)if ( destFile.exists ()) destFile.delete (); boolean b = tempFile.renameTo ( destFile ); if (!b) {throw new IOException ( "Rename failure:" +destFile );ProxyCacheFile.updateMd5File (localPath , fileName, md5); //更新緩存System.out.println ( "-------------------save file ["+fileName +"]from proxy stream success-------------------");catch ( Exception ex ) { ex.printStackTrace ();throw new RuntimeException ( "10 Exception " + ex.getMessage ( ) +"["+tempFile.getAbsolutePath ( ) +"]", ex);finally{ if (in!=null)in.close (); 〃关闭流优选的,本例子还可以包括以下步骤 步骤A8:生成所述存储文件的第二MD5值;步骤A9:比较所述第一MD5值和第二MD5值,若两个值相同,则所 述存储文件与所述第一客户端需要下载的文件为同 一文件,若两个值不同, 则所述存储文件与所述第一客户端需要下载的文件为不同的文件。局域网内的下载速度大大高于广域网上的下载速度,因此极大地提高了文件 的下载速度;同时,在本发明实施例中,将很多客户端从服务器的下载转化 为了客户端之间的点对点下载,所以可以减轻服务器的处理负荷,提高了服 务器的性能。参考图3,示出了本发明的一种点对点下载的系统优选实施例的结 构框图,可以包括以下装置第一客户端301,所述第一客户端包括发送请求参数模块和保存文件模块,所述发送请求参数模块用于向已经启动的第 一代理服务器发送文件下载的请求参数,所述请求参数包括需要下载的文件信息;所述保 存文件模块用于保存从第二客户端下载的存储文件;第一代理服务器302,所述第一代理服务器包括发送广播消息模块、 接收反馈消息模块和转发请求参数模块,所述发送广播消息模块用于根 据所述请求参数,向所述第 一客户端所处的局域网内的其他客户端发送 UDP广播消息,所述UDP广播消息包括所述请求参数;所述接收反馈 消息模块用于接收所述局域网内的第二客户端的反馈消息;所述转发请 求参数模块用于在接收反馈消息模块接收到所述反馈消息后,将所述请 求参数转发至所述第二客户端的第二代理服务器;第二代理服务器303,所述第二代理服务器包括查找模块和返回模 块,所述查找模块用于根据所述请求参数查找相应的存储文件,所述返 回模块用于将所述存储文件返回至第一代理服务器;第二客户端304,用于向所述第二代理服务器提供所述相应的存储 文件。优选的,所述系统还可以包括启动装置,用于启动所述第一客户端所在局域网的所有客户端的代 理服务器。优选的,所述系统还可以包括生成装置,用于生成所述存储文件的第二MD5值。优选的,所述系统还可以包括比较装置,用于比较所述第一 MD5值和第二 MD5值,若两个值相 同,则所述存储文件与所述第一客户端需要下载的文件为同一文件,若两 个值不同,则所述存储文件与所述第一客户端需要下载的文件为不同的文 件。在本实施例中,第一客户端向其第一代理服务器发送文件下载请 求,所述第一代理服务器通过向所处局域网内部的其他客户端的代理服 务器发送UDP消息,查询其他代理服务器上是否存储有第一客户端需 要下载的文件,若第二代理服务器查询到相应的存储文件后,就可以通知所述第 一客户端到第二客户端上下载相应文件,因此本发明实施例将 远程服务器下载变为客户端之间的点对点下载,并采用UDP消息的广 播形式,更能减轻网络的负担,大大提升了下载文件的速度。参考图4,示出了应用图3所示的系统优选实施例进行点对点下载 的流程图,可以包括以下步骤步骤401:启动装置启动第一客户端所在局域网的所有客户端的代 理服务器;步骤402:发送请求参数模块向已经启动的第一代理服务器发送文 件下载的请求参数,所述请求参数包括需要下载的文件信息;步骤403:发送广播消息模块根据所述请求参数,向所述第一客户 端所处的局域网内的其他客户端发送UDP广播消息,所述UDP广播消 息包括所述请求参数;步骤404:接收反馈消息模块接收所述局域网内的第二客户端的反 馈消息;步骤405:转发请求参数模块在接收反馈消息模块接收到所述反馈 消息后,将所述请求参数转发至所述第二客户端的已经启动的第二代理 服务器;步骤406:查找模块根据所述请求参数查找相应的存储文件, 步骤407:返回模块将所述存储文件返回至第一代理服务器; 步骤408:保存文件模块保存从第二客户端下载的存储文件; 步骤409:生成装置生成所述存储文件的第二MD5值; 步骤4010:比较装置比较所述第一MD5值和第二MD5值,若两个 值相同,则所述存储文件与所述第 一客户端需要下载的文件为同 一文件, 若两个值不同,则所述存储文件与所述第一客户端需要下载的文件为不同 的文件。需要说明的是,本说明书中的各个实施例均采用递进的方式描述, 每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间 相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。以上对本发明所提供的 一种点对点下载的方法及点对点下载的系统 行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体 实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应 理解为对本发明的限制。
权利要求
1、一种点对点下载的方法,其特征在于,包括第一客户端向第一代理服务器发送文件下载的请求参数,所述请求参数包括需要下载的文件信息;根据所述请求参数,所述第一代理服务器向所述第一客户端所处的局域网内的其他客户端发送用户数据包协议UDP消息,所述UDP消息包括所述请求参数;所述第一代理服务器接收到所述局域网内的第二客户端的反馈消息之后,将所述请求参数转发至所述第二客户端的第二代理服务器;所述第二代理服务器根据所述请求参数查找相应的存储文件,并将所述存储文件返回至第一代理服务器;所述第一客户端保存所述存储文件。
2、 如权利要求l所述的方法,其特征在于,还包括 启动所述第一客户端所在局域网的所有客户端的代理服务器。
3、 如权利要求2所述的方法,其特征在于,所述启动所述第一客 户端所在局域网的所有的客户端的代理服务器的步骤包括当操作系统开始运行时,启动所述第 一客户端所在局域网的所有客 户端的代理服务器。
4、 如权利要求2所述的方法,其特征在于,所述启动所述第一客所述第 一客户端所在局域网的所有更新组件启动所述局域网的所 有代理服务器。
5、 如权利要求1所述的方法,其特征在于,所述文件信息包括所 述需要下载的文件名称和第一 MD5值。
6、 如权利要求5所述的方法,其特征在于,所述第一客户端保存 所述存储文件的步骤之后,还包括生成所述存储文件的第二 MD5值。
7、 如权利要求6所述的方法,其特征在于,还包括 比较所述第一MD5值和第二MD5值,若两个值相同,则所述存储文件与所述第一客户端需要下载的文件为同一文件,若两个值不同,则所述 存储文件与所述第一客户端需要下载的文件为不同的文件。
8、 一种点对点下载的系统,其特征在于,包括第 一客户端,所述第 一客户端包括发送请求参数模块和保存文件模 块,所述发送请求参数模块用于向已经启动的第 一代理服务器发送文件 下载的请求参数,所述请求参数包括需要下载的文件信息;所述保存文 件模块用于保存从第二客户端下载的存储文件;第一代理服务器,所述第一代理服务器包括发送广播消息模块、接 收反馈消息模块和转发请求参数模块,所述发送广播消息模块用于根据 所述请求参数,向所述第一客户端所处的局域网内的其他客户端发送 UDP消息,所述UDP广播消息包括所述请求参数;所述接收反馈消息 模块用于接收所述局域网内的第二客户端的反馈消息;所述转发请求参 数模块用于在接收反馈消息模块接收到所述反馈消息后,将所述请求参 數转发至所述第二客户端的第二代理服务器;第二代理服务器,所述第二代理服务器包括查找模块和返回模块, 所述查找模块用于根据所述请求参数在第二客户端中查找相应的存储 文件,所述返回模块用于将所述存储文件返回至第一代理服务器;第二客户端,用于向所述第二代理服务器提供所述相应的存储文件。
9、 如权利要求8所述的系统,其特征在于,还包括 启动装置,用于启动所述第一客户端所在局域网的所有客户端的代理服务器。
10、 如权利要求8所述的系统,其特征在于,还包括 生成装置,用于生成所述存储文件的第二MD5值。
11、 如权利要求IO所述的系统,其特征在于,还包括 比较装置,用于比较所述第一 MD5值和第二 MD5值,若两个值相同,则所述存储文件与所述第一客户端需要下载的文件为同一文件,若两 个值不同,则所述存储文件与所述第 一客户端需要下载的文件为不同的文 件。
全文摘要
本发明提供了一种点对点下载的方法,包括第一客户端向第一代理服务器发送文件下载的请求参数,所述请求参数包括需要下载的文件信息;根据所述请求参数,第一代理服务器向第一客户端所处的局域网内的其他客户端发送用户数据包协议UDP消息,所述UDP消息包括所述请求参数;第一代理服务器接收到所述局域网内的第二客户端的反馈消息之后,将所述请求参数转发至所述第二客户端的第二代理服务器;第二代理服务器根据所述请求参数查找相应的存储文件,并将存储文件返回至第一代理服务器;第一客户端保存所述存储文件。运用本发明的方法,可以把远程服务器下载变为局域网内下载,极大地提高了文件下载速度。本发明还提供了一种点对点下载的系统。
文档编号H04L29/08GK101325611SQ20081012628
公开日2008年12月17日 申请日期2008年7月30日 优先权日2008年7月30日
发明者资冰冰 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1