一种基于点对点技术的图片共享系统和方法

文档序号:7958462阅读:180来源:国知局
专利名称:一种基于点对点技术的图片共享系统和方法
技术领域
本发明涉及点对点(P2P,Peer to Peer)技术,尤其涉及一种基于点对点技术的图片共享系统和方法。
背景技术
随着数码相机在生活中的普及和网络技术的发展,越来越多的人开始考虑将自己收集的电子照片和图片共享给网上的朋友欣赏。
传统的图片共享采用的方法是设置一台或若干台的图片共享公用服务器,在这样的平台下,发布图片的人将图片发送到图片共享公用服务器上,需要浏览图片的用户从图片共享公用服务器上下载图片进行浏览和观看。
这种图片共享的方法存在一定的缺陷,首先,需要设置一台或若干台图片共享公用服务器,并且每台共享公用服务器都需要配置具有足够存储能力的存储设备,以存储大量的图片,于是,配置、操作和维护这些图片共享公用服务器就需要一定的成本;另外,当大量用户同时进行上传和下载图片时,通往图片共享公用服务器的带宽往往成为图片传输的瓶颈,使得上传和下载图片的速度变慢。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于点对点技术的图片共享系统,采用本发明提供的系统可以低成本、快速地实现图片的共享和传输。
本发明的另一目的在于提供一种基于点对点技术的图片共享方法,利用本发明所提供的方法可以低成本、快速地实现多个用户同时发送和接收图片。
为了实现发明目的,本发明提供一种基于点对点技术的图片共享系统,包括一个以上具有唯一标识ID的客户端,该系统还包括点对点P2P服务器,与客户端相连,用于记录所有注册的客户端的基本信息,为登录的客户端之间通信搭建直连通道;共享服务器,与客户端相连,用于为客户端所要共享的图片分配在客户端本地唯一的资源ID。
述共享服务器为进一步具有存储共享资源信息和每个客户端的接收资源信息功能的服务器。
本发明还提供一种基于点对点技术的图片共享方法,包括A、发起图片共享的客户端获取所要共享的图片在本地唯一的资源ID;B、发起图片共享的客户端向指定的客户端发送包括资源ID和自身ID的共享通知消息;C、收到共享通知消息的客户端向发起图片共享的客户端发送包括自身ID和资源ID的图片请求消息;D、发起图片共享的客户端向发送图片请求消息的客户端传输图片。
在所述步骤A之前,该方法进一步包括在发起图片共享的客户端为所要共享的图片建立目录。
步骤A中所述获取为A1、发起图片共享的客户端向共享服务器发送包括客户端ID和共享图片所要发给的客户端列表的共享发布消息;A2、共享服务器根据发起图片共享的客户端的ID为所要共享的图片分配在客户端本地唯一的资源ID,并将所分配的资源ID携带于共享发布消息中,发送给发起图片共享的客户端。
所述共享发布消息进一步包括图片描述、共享图片所要发给的客户端的个数和发布时间。
所述共享通知消息进一步包括指定的客户端列表、图片描述、图片文件的个数和发布共享通知消息的时间。
所述图片请求消息进一步包括请求文件的个数。
所述步骤D包括发起图片共享的客户端向发送图片请求消息的客户端同时传输一个以上图片,其中,图片的个数为请求文件的个数。
在所述步骤C和步骤D之间,该方法进一步包括发起图片共享的客户端收到图片请求消息后,向发送图片请求消息的客户端回复文件列表消息,文件列表消息中包括资源ID、图片文件的个数和所有图片的文件名;发送图片请求消息的客户端收到发起图片共享的客户端的文件列表消息后,根据文件列表消息在本地建立文件下载进度表,然后,根据文件下载进度表向发起共享图片的客户端发送请求下载文件消息,请求下载文件消息中包括资源ID和所请求下载的图片文件名。
从以上技术方案可以看到,本发明所提供的基于点对点技术的图片共享系统和方法具有以下有益效果1、本发明由于采用点对点技术,不需要设置图片共享公用服务器来存储图片,图片资源只需要保存在本地,因此,可以节省配置、操作和维护图片共享公用服务器的成本;2、本发明不采用图片共享公用服务器,而是通过点对点技术将图片直接发给指定用户,因此,不存在带宽不够的情况,可以实现多个用户同时快速地发送和接收图片资源。


图1是根据本发明实施例的基于点对点技术的图片共享系统的框图;图2是根据本发明实施例的基于点对点技术的图片共享方法的流程图。
具体实施例方式
为了使本发明的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明做进一步详细的描述。
本发明的主要思想是不设置图片共享公用服务器,而是基于点对点的技术在用户节点之间建立直连通道,直接传输数据,实现图片的传输和共享。
点对点技术就是使网络中任何两个用户节点之间的通信可以不通过传统的服务器进行中转,而是在两个用户节点间建立直连通道,直接传输数据。
具体地,参见图1,图1是根据本发明实施例的基于点对点技术的图片共享系统的框图。图1所示的图片共享系统包括共享服务器、P2P服务器和客户端A、B、C。
客户端A、B、C是图片共享系统的用户。在图片共享系统中,不局限于三个客户端,每个客户端都有唯一的标识(ID,Identifier)。每个客户端的标识都保存在P2P服务器和共享服务器中,客户端都遵守共同的P2P协议,由P2P服务器支持客户端之间的通信。
另外,客户端还可以用于保存共享列表,例如发起图片共享的客户端ID、资源ID、共享图片所要发送给的客户端ID等。
P2P服务器用于记录所有注册的客户端的基本信息,为登录图片共享系统的客户端之间的通信搭建直连通道,使在客户端之间传输数据不再通过服务器进行中转。
共享服务器不同于传统的用于存储共享图片的图片共享公用服务器,本实施例的共享服务器用于为客户端所要共享的图片分配在客户端本地唯一的资源ID。
在客户端,可以首先为所有要共享的图片建立本地文件目录,本地文件目录可以是文件夹,用于存储需要共享的图片。一个目录对应一个资源,在本地有唯一的资源ID,资源ID可以是4字节的,例如是1001;当然,也可以直接将所有要共享的图片作为一个整体,对应一个资源,分配唯一的资源ID。在客户端发起共享时,首先从共享服务器上为本地文件目录获取一个资源ID,由于是共享服务器为客户端分配资源ID,所以可以保证资源ID在本地是唯一的。由于资源ID在客户端本地唯一,而客户端在整个图片共享网络中也有唯一的ID,所以,资源ID加上客户端ID就可以唯一定位到所要共享的图片。
另外,共享服务器也可以用于存储共享资源信息和每个客户端的接收资源信息,共享资源信息可以包括发起图片共享的客户端ID、资源ID、共享图片所要发送给的客户端ID、资源描述和图片文件的个数等;每个客户端的接收资源可以包括发起图片共享的客户端ID、资源ID、共享图片所要发送给的客户端ID等。
下面,以客户端A向客户端B和客户端C发送共享图片为例,详细描述基于图1所示的系统的图片共享过程。
参见图2,图2是根据本发明实施例的基于点对点技术的图片共享方法的流程图。具体地,客户端A在本地为所有要共享的图片建立本地文件目录,向客户端B和客户端C发起图片共享,即客户端A向客户端B和客户端C传输图片的流程和步骤如下步骤201、发起图片共享的客户端从共享服务器上获取对于所要共享的图片在本地唯一的资源ID;这里,发起图片共享的客户端是客户端A,客户端A要发起图片共享,首先对于所要共享的图片文件建立目录,指定该目录,然后向共享服务器发送共享发布消息,共享发布消息中包括客户端A的ID、共享图片所要发给的客户端的ID列表,进一步地还可以包括图片描述。共享服务器接收到客户端A发送的共享发布消息后,根据客户端A的ID,为客户端A的这次共享分配资源ID,例如,根据客户端A的ID查找已经为客户端A分配的资源ID,按照一定的规则,例如加1的规则,为客户端A指定的目录分配资源ID,例如,共享服务器根据客户端A的ID查找到已经为客户端A分配的资源ID是1000,于是这次给客户端A指定的目录分配的资源ID是1001,从而可以确保所分配的资源ID在客户端A本地是唯一的,然后共享服务器将共享发布消息中加上资源ID,发送给客户端A,于是,客户端A就从共享服务器上获取了目录在本地唯一的资源ID。
步骤202、发起图片共享的客户端向共享图片所要发给的客户端发送包括发起图片共享的客户端ID和资源ID的共享通知消息;
这里,共享图片所要发给的客户端是客户端B和客户端C,由于资源ID在客户端A的本地是唯一的,所以在整个图片共享系统中,客户端A的ID加上资源ID就可以唯一确定所要共享的图片资源。
客户端A向客户端B和客户端C发送共享通知消息,P2P服务器根据客户端A、B、C的登录情况,为客户端A和客户端B以及客户端A和客户端C搭建直连通道,从而使得共享通知消息可以直接从客户端A发送到客户端B和客户端C。
另外,共享通知消息中还可以进一步包括用于对所要共享的图片进行简单介绍的资源描述,例如 “西藏图片”,所要共享的图片个数,例如100个,以及发布时间等。
步骤203、共享图片所要发给的客户端向发起图片共享的客户端发送包括请求图片的客户端ID和资源ID的图片请求消息;客户端B和客户端C收到包括客户端A的ID和资源ID的共享通知消息后,可以向客户端A发送图片请求消息,以客户端B向客户端A请求为例,客户端B发送的图片请求消息中至少包括客户端B的ID和资源ID。
另外,图片请求消息中还可以包括请求文件的个数,请求文件的个数是指同时请求的文件个数,即发起图片共享的客户端同时发送的文件个数,缺省的情况下可以为1。在共享图片所要发给的客户端一侧设置这个变量,可以触发发起图片共享的客户端同时启动一个以上个线程,所启动的线程个数为请求文件的个数,使发起端和接收端可以同时进行多个文件的传输。例如,设置请求文件的个数是5,即客户端B向客户端A同时请求5个图片文件,于是,客户端A应客户端B的请求,向客户端B同时发送5个图片,当客户端B将5个图片文件都接收完毕后,再触发发起下5个文件的请求,这样客户端A和客户端B能同时进行5个图片文件数据的传输。
步骤204、发起图片共享的客户端向请求的客户端传输图片文件。
客户端B的图片请求消息将触发客户端A向其发送图片文件,于是客户端A收到客户端B的图片请求消息,并且图片请求消息中不包括请求文件的个数,即缺省时,客户端A应客户端B的请求,触发以一个文件的粒度向客户端B传输图片文件,每传输完一个图片文件就自动触发下一个图片文件的传输,直至目录下的所有图片文件都传输完毕。
当图片请求消息中包括请求文件的个数时,客户端A则以请求文件的个数的粒度向客户端B传输图片文件。
另外,在步骤203和步骤204之间,发起图片共享的客户端收到共享图片所要发给的客户端发送来的图片请求消息后,可以首先向发送图片请求消息的客户端回复文件列表消息,文件列表消息中包含资源ID、图片文件的个数和所有图片的文件名。发送图片请求消息的客户端收到发起图片共享的客户端的回复消息后,在本地建立一个文件下载进度表,表中文件的顺序与文件列表消息中的文件顺序一致,这个顺序也可以作为文件的下载顺序。发送图片请求消息的客户端根据文件下载进度表,向发起共享图片的客户端发送请求下载文件消息,该消息中包括资源ID和文件名;接下来,发起图片共享的客户端收到请求下载文件消息后,根据所请求的资源ID和文件名向发送请求消息的客户端传输图片文件。这里,请求下载文件消息中可以同时包含多个文件名,这时将触发发起图片共享的客户端同时启动多个线程,同时向发送图片请求消息的客户端传输多个图片文件。
以上参照图2详细描述了根据本发明实施例的基于点对点技术的图片共享方法,从以上系统和方法的描述可以看到,本发明不使用图片共享服务器,仅在用户节点之间建立直连通道,直接进行图片的传输,因此,可以节省配置、操作和维护图片共享服务器的成本,还可以实现多个用户之间同时进行图片共享。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种基于点对点技术的图片共享系统,包括一个以上具有唯一标识ID的客户端,其特征在于,该系统还包括点对点P2P服务器,与客户端相连,用于记录所有注册的客户端的基本信息,为登录的客户端之间通信搭建直连通道;共享服务器,与客户端相连,用于为客户端所要共享的图片分配在客户端本地唯一的资源ID。
2.根据权利要求1所述的系统,其特征在于,所述共享服务器为进一步具有存储共享资源信息和每个客户端的接收资源信息功能的服务器。
3.一种基于点对点技术的图片共享方法,其特征在于,该方法包括A、发起图片共享的客户端获取所要共享的图片在本地唯一的资源ID;B、发起图片共享的客户端向指定的客户端发送包括资源ID和自身ID的共享通知消息;C、收到共享通知消息的客户端向发起图片共享的客户端发送包括自身ID和资源ID的图片请求消息;D、发起图片共享的客户端向发送图片请求消息的客户端传输图片。
4.根据权利要求3所述的方法,其特征在于,在所述步骤A之前,该方法进一步包括在发起图片共享的客户端为所要共享的图片建立目录。
5.根据权利要求3或4所述的方法,其特征在于,步骤A中所述获取为A1、发起图片共享的客户端向共享服务器发送包括客户端ID和共享图片所要发给的客户端列表的共享发布消息;A2、共享服务器根据发起图片共享的客户端的ID为所要共享的图片分配在客户端本地唯一的资源ID,并将所分配的资源ID携带于共享发布消息中,发送给发起图片共享的客户端。
6.根据权利要求5所述的方法,其特征在于,所述共享发布消息进一步包括图片描述、共享图片所要发给的客户端的个数和发布时间。
7.根据权利要求3或4所述的方法,其特征在于,所述共享通知消息进一步包括指定的客户端列表、图片描述、图片文件的个数和发布共享通知消息的时间。
8.根据权利要求3或4所述的方法,其特征在于,所述图片请求消息进一步包括请求文件的个数。
9.根据权利要求8所述的方法,其特征在于,所述步骤D包括发起图片共享的客户端向发送图片请求消息的客户端同时传输一个以上图片,其中,图片的个数为请求文件的个数。
10.根据权利要求3或4所述的方法,其特征在于,在所述步骤C和步骤D之间,该方法进一步包括发起图片共享的客户端收到图片请求消息后,向发送图片请求消息的客户端回复文件列表消息,文件列表消息中包括资源ID、图片文件的个数和所有图片的文件名;发送图片请求消息的客户端收到发起图片共享的客户端的文件列表消息后,根据文件列表消息在本地建立文件下载进度表,然后,根据文件下载进度表向发起共享图片的客户端发送请求下载文件消息,请求下载文件消息中包括资源ID和所请求下载的图片文件名。
全文摘要
本发明公开一种基于点对点技术的图片共享系统和方法,该系统包括与客户端相连的P2P服务器和共享服务器,P2P服务器用于记录所有注册的客户端的基本信息,为登录的客户端之间通信搭建直连通道;共享服务器用于为客户端所要共享的图片分配在客户端本地唯一的资源ID。该方法包括发起图片共享的客户端获取所要共享的图片在本地唯一的资源ID;发起图片共享的客户端发送共享通知消息;收到共享通知消息的客户端向发起图片共享的客户端发送图片请求消息;向发送图片请求消息的客户端传输图片。采用本发明提供的系统和方法,不需要设置图片共享服务器来存储图片,可以低成本、快速地实现多个用户之间同时传输图片。
文档编号H04L29/12GK101043345SQ20061006550
公开日2007年9月26日 申请日期2006年3月20日 优先权日2006年3月20日
发明者梁柱, 王麒 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1