一种图片共享系统和方法

文档序号:7958345阅读:149来源:国知局
专利名称:一种图片共享系统和方法
技术领域
本发明涉及点对点(P2P,Peer to Peer)技术,尤其涉及一种基于点对点技术的图片共享系统和方法。
背景技术
随着数码相机在生活中的普及和网络技术的发展,越来越多的人开始考虑将自己收集的电子照片和图片共享给网上的朋友欣赏。
当前,存在一种基于点对点技术的图片共享系统和方法,这种图片共享系统和方法利用点对点技术在网络中的任何用户节点之间建立直连通道,使网络中任何两个用户节点之间的通信不再通过传统的服务器进行中转,而是可以在用户节点之间直接传输图片,从而实现图片共享。
然而,这种基于点对点技术的图片共享系统和方法存在一定的缺陷当客户端A向客户端B发送共享图片时,如果客户端B不在线,则收不到客户端A发送的共享图片,即使客户端B下次上线时,也同样收不到客户端A发送的共享图片;另外,即使客户端B在下次上线时,可以获取到客户端A曾发送过共享图片的消息,但是如果此时客户端A不在线,那么客户端B同样请求不到客户端A曾发送过的共享图片。

发明内容
有鉴于此,本发明的主要目的在于提供一种图片共享系统,采用本发明提供的系统能使在离线期间没有收到共享图片的客户端在上线时可以重新收到共享图片。
本发明的另一目的在于提供一种图片共享方法,利用本发明提供的方法可以保证离线客户端在上线时能收到在离线期间没有收到的共享图片。
为了实现上述发明目的,本发明提供一种图片共享系统,至少包括一个以上具有唯一标识ID的客户端和与客户端相连的点对点P2P服务器,其中,客户端还用于保存共享信息;该系统还包括共享服务器,与客户端相连,用于为客户端所要共享的图片分配唯一资源ID,并保存共享资源信息和每个客户端的接收资源信息。
所述客户端可以为进一步具有生成名称为资源ID的INI配置文件功能的客户端。
本发明还提供一种图片共享方法,包括A、发起图片共享的客户端给共享图片所要发送给的客户端发送共享通知消息,同时给共享服务器发送共享消息,共享服务器根据所接收到的共享消息保存共享资源信息和对应客户端的接收资源信息;B、发起图片共享的客户端传输图片,图片接收完毕的客户端在本地保存共享信息,并向共享服务器发送接收成功消息,共享服务器修改该客户端所对应的接收资源信息;C、客户端登录共享服务器,查找在离线期间向自己发起图片共享的客户端,判断发起图片共享的客户端是否在线,如果是,则向发起图片共享的客户端发送图片请求消息,发送图片共享的客户端向发起图片请求的客户端传输图片;否则,查找具有共享图片的在线的其它客户端,向所找到的在线客户端发送图片请求消息,收到图片请求消息的客户端向发起请求的客户端传输共享图片。
在所述步骤A之前,该方法进一步包括在共享服务器中设置保存共享资源信息的共享资源表和保存每个客户端的接收资源信息的接收共享表,在客户端本地设置保存共享信息的共享列表。
所述共享资源信息可以至少包括发起图片共享的客户端ID、资源ID和共享图片所要发送给的客户端ID;所述接收资源信息可以至少包括发起图片共享的客户端ID、资源ID以及全部文件是否接收完毕;所述在客户端本地保存的共享信息可以至少包括发起图片共享的客户端ID和资源ID。
所述共享资源信息可以进一步包括资源描述和共享图片的文件个数;所述在客户端本地保存的共享信息可以进一步包括资源描述;在发起图片共享的客户端保存的共享信息中可以进一步包括共享图片所要发送给的客户端ID。
在所述步骤A和步骤B之间,该方法可以进一步包括收到共享通知消息的客户端向发起图片共享的客户端发送图片请求消息,发起图片共享的客户端接收图片请求消息。
步骤C中所述查找包括搜索客户端对应的接收资源信息,查看其中全部文件是否接收完毕为否的信息,找到对应的发起图片共享的客户端ID和资源ID。
步骤C中所述查找具有共享图片的在线的其它客户端,包括根据所找到的发起图片共享的客户端ID和资源ID在共享服务器所保存的共享资源信息中查找共享图片所要发送给的客户端ID,选择其中非自身ID的在线客户端。
步骤C中所述判断发起图片共享的客户端是否在线,包括所述登录共享服务器的客户端向发起图片共享的客户端发送图片请求消息,判断一定时间内是否收到发起图片共享客户端的响应消息,如果收到,发起图片共享的客户端在线;否则,发起图片共享的客户端离线。
从以上技术方案可以看到,本发明提供的图片共享系统和方法具有以下有益效果1、本发明通过在共享服务器上保存共享资源信息和接收资源信息,记录发起图片共享的客户端和接收共享图片的客户端的信息,使得离线客户端在上线并访问共享服务器时,能通过共享服务器所保存的信息获得发起图片共享的客户端的信息以及共享图片所发送给的客户端的信息,从而通过向在线的有共享图片的客户端发起请求来获得共享图片;2、本发明所提供的系统和方法仅通过在共享服务器上保存共享资源信息和接收资源信息就可以实现只要有一个有共享图片的客户端在线,离线用户就可以请求到在离线期间没有接收到的共享图片,简单且易于实现。


图1是根据本发明实施例的图片共享系统的框图;图2是根据本发明实施例的图片共享方法的流程图。
具体实施例方式
为了使本发明的特征和优点更加清楚明白,下面参照附图结合具体实施例对本发明作进一步的描述。
本发明的主要思想是在共享服务器上保存关于图片共享的基本信息,使得离线客户端在上线时可以获取离线期间没有收到的消息,并根据共享服务器上保存的基本信息向在线的有共享图片的客户端请求共享图片。
具体地,参见图1,图1是根据本发明实施例的图片共享系统的框图。图1所示的基于点对点技术的支持离线用户共享图片的系统包括共享服务器、P2P服务器和客户端A、B、C。
共享服务器、P2P服务器和客户端A、B、C的组成以及连接关系与现有的基于点对点技术的图片共享系统的类似,客户端A、B、C与P2P服务器和共享服务器相连,并且在本发明的系统中不局限于三个客户端,可以有多个客户端。每个客户端都有唯一的标识ID,标识都保存在P2P服务器和共享服务器中,客户端都遵守共同的P2P协议,由P2P服务器支持客户端之间的通信。P2P服务器为登录的客户端之间的通信搭建直连通道,使客户端之间的通信不必通过服务器进行中转。
与现有的基于点对点技术的图片共享系统不同的是,在本实施例中的客户端本地还保存有共享信息,用于记录包括自己发起的共享图片的信息和自己接收到的共享图片的信息,这些共享信息包括发起图片共享的客户端ID、资源ID,进一步可以包括资源描述,在发起图片共享的客户端的共享信息中较佳地还可以包括共享图片所要发送给的客户端,这些共享信息可以保存于设置在客户端本地的共享列表中,共享列表如表1所示。

表1另外,在本实施例的客户端从共享服务器获取到在本地唯一的资源ID后,会在本地内存中自动生成名称为“资源ID.ini”的INI配置文件,以便将图片资源保存在本地内存中,在下次有客户端请求时,可以直接将图片资源传输给发起请求的客户端。
本实施例中的共享服务器用于为客户端所要共享的图片分配在客户端本地唯一的资源ID,还用于保存共享资源信息和每个客户端的接收资源信息。在共享服务器中,可以通过设置一张共享资源信息表保存共享资源信息,同时为每个客户端设置接收共享表保存每个客户端的接收资源。共享资源信息至少包括发起图片共享的客户端ID、资源ID和共享图片所发送给的客户端ID,还可以进一步包括资源描述和目录资源下的文件个数,共享资源信息表如表2所示。

表2每个客户端的接收资源信息包括发起图片共享的客户端ID、资源ID以及全部文件是否接收完毕,接收共享表如表3所示。其中,“全部文件是否接收完毕”的默认值是“否”。

表3下面,以客户端A向客户端B和客户端C发送共享图片,并且客户端B离线,而客户端C在线为例,详细描述基于图1所示的系统支持离线用户共享图片的过程。
参见图2,图2是根据本发明实施例的图片共享方法的流程图。在共享服务器中设置共享资源信息表保存共享资源信息并为每个客户端设置接收共享表保存接收资源信息,在客户端本地设置共享列表,支持离线用户共享图片的具体过程和步骤如下步骤201、发起图片共享的客户端给共享图片所要发送给的客户端发送共享通知消息,同时给共享服务器发送共享消息,共享服务器根据所接收到的共享消息在共享资源信息表和对应客户端的接收共享表中增加表项;这里,发起图片共享的客户端是客户端A,共享图片所发送给的客户端是客户端B和客户端C,客户端A根据P2P服务器为它搭建的直连通道分别向客户端B和客户端C发送共享通知消息,与此类似,客户端A、B、C之间的通信包括传输图片都是通过由P2P服务器搭建的直连通道进行的。
在本实施例中,例如客户端A所发送的共享图片资源ID是1001,资源描述是“黄山照片”,客户端A在发送完共享通知消息后,会首先在本地保存的共享列表中增加表项,如表4所示。

表4客户端A给共享服务器发送的共享消息至少包括客户端A的ID、资源ID和客户端B和客户端C的ID,共享消息还可以进一步包括资源描述和文件个数,例如这里,文件个数是10,于是,共享服务器根据所接收到的共享消息在共享资源信息表中增加一个表项,如表5所示,同时,在客户端B和客户端C的接收共享表中也分别增加一个表项,分别如表6和表7所示;

表5

表6

表7步骤202、收到共享通知消息的客户端向发起图片共享的客户端发送图片请求消息,发起图片共享的客户端收到图片请求消息后,向发起图片请求的客户端传输图片;这里,由于客户端B不在线,不会收到客户端A发送的共享通知消息,客户端C在线,收到共享通知消息后,向客户端A发送图片请求消息,客户端A应客户端C的请求,向客户端C传输图片。
步骤203、图片接收完毕的客户端增加本地共享列表的表项,并向共享服务器发送接收成功消息,共享服务器修改对应接收共享表中的表项信息;当全部图片文件传输完毕后,客户端C首先在本地保存的共享列表中增加表项,如表8所示。

表8然后,客户端C向共享服务器发送接收成功通知消息,接收成功消息包括客户端C的ID、客户端A的ID和资源ID,于是,共享服务器找到客户端C的接收共享表,并根据客户端A的ID和资源ID将客户端C的接收共享表中的对应客户端A的ID和资源ID的表项“全部文件是否接收完毕”修改为“是”,如表9所示。

表9步骤204、客户端登录共享服务器,查找在离线期间向自己发起图片共享的客户端;客户端B在客户端A向自己发起图片共享时处于离线状态,没有收到共享通知消息,当然也无法请求到共享图片,于是在客户端B上线时,登录共享服务器,搜索客户端B的接收共享表中“全部文件是否接收完毕”为“否”的表项,即表6,从表6所示的表项中可以发现客户端A曾给自己发送过资源ID为1001的图片资源。
步骤205、判断发起图片共享的客户端是否在线,如果是,则向发起图片共享的客户端发送图片请求消息,发送图片共享的客户端向发起图片请求的客户端传输图片;否则,查找具有共享图片的在线的其它客户端,向所找到的某个在线的客户端发送图片请求消息,收到发送图片请求消息的客户端向发起请求的客户端传输共享图片。
这里,其它客户端是指除步骤204中所述登录共享服务器的客户端和发起图片共享的客户端以外的客户端。
客户端B可以首先向客户端A发送一条图片请求消息,包括客户端B的ID、客户端A的ID和资源ID 1001,客户端A的ID和资源ID 1001用于定位共享图片,客户端A如果在线,则应客户端B的请求,查找本地保存的自动生成的名称为“1001.ini”的配置文件,向客户端B传输图片;如果客户端B在一定时间内没有收到客户端A的响应消息,则可以认为客户端A不在线,此时,客户端B根据客户端A的ID和资源ID 1001在共享服务器的共享资源信息表中查找对应表项,在客户端A的ID和资源ID 1001所定位的表项中一定会找到共享图片所要发送给的客户端ID的字段,即客户端B和客户端C,于是,客户端B可以向客户端C发送图片请求消息,该图片请求消息中包括客户端B的ID、客户端A的ID和资源ID 1001,客户端C收到客户端B的图片请求消息后,根据客户端A的ID和资源ID 1001在本地查找客户端A曾发送给自己的图片资源,然后向客户端B传输所找到的图片资源。
通过这种方法,仅当客户端A共享图片给的所有客户端都不在线时,客户端B才不能获得共享图片,否则,只要有一个客户端A共享图片给的客户端在线,客户端B都可以获得该共享图片。
以上详细描述了基于点对点技术的支持离线用户共享图片的系统和方法,从以上描述可以看到本发明通过在现有的基于点对点技术的图片共享系统的共享服务器中增加两项相关的表,保存关于图片共享的基本信息,实现离线客户端在上线时可以获得离线期间所没有收到的共享图片。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种图片共享系统,至少包括一个以上具有唯一标识ID的客户端和与客户端相连的点对点P2P服务器,其特征在于,客户端还用于保存共享信息;该系统还包括共享服务器,与客户端相连,用于为客户端所要共享的图片分配唯一资源ID,并保存共享资源信息和每个客户端的接收资源信息。
2.根据权利要求1所述的系统,其特征在于,所述客户端为进一步具有生成名称为资源ID的INI配置文件功能的客户端。
3.一种图片共享方法,其特征在于,包括A、发起图片共享的客户端给共享图片所要发送给的客户端发送共享通知消息,同时给共享服务器发送共享消息,共享服务器根据所接收到的共享消息保存共享资源信息和对应客户端的接收资源信息;B、发起图片共享的客户端传输图片,图片接收完毕的客户端在本地保存共享信息,并向共享服务器发送接收成功消息,共享服务器修改该客户端所对应的接收资源信息;C、客户端登录共享服务器,查找在离线期间向自己发起图片共享的客户端,判断发起图片共享的客户端是否在线,如果是,则向发起图片共享的客户端发送图片请求消息,发送图片共享的客户端向发起图片请求的客户端传输图片;否则,查找具有共享图片的在线的其它客户端,向所找到的在线客户端发送图片请求消息,收到图片请求消息的客户端向发起请求的客户端传输共享图片。
4.根据权利要求3所述的方法,其特征在于,在所述步骤A之前,该方法进一步包括在共享服务器中设置保存共享资源信息的共享资源表和保存每个客户端的接收资源信息的接收共享表,在客户端本地设置保存共享信息的共享列表。
5.根据权利要求3或4所述的方法,其特征在于,所述共享资源信息至少包括发起图片共享的客户端ID、资源ID和共享图片所要发送给的客户端ID;所述接收资源信息至少包括发起图片共享的客户端ID、资源ID以及全部文件是否接收完毕;所述在客户端本地保存的共享信息至少包括发起图片共享的客户端ID和资源ID。
6.根据权利要求5所述的方法,其特征在于,所述共享资源信息进一步包括资源描述和共享图片的文件个数;所述在客户端本地保存的共享信息进一步包括资源描述;在发起图片共享的客户端保存的共享信息中进一步包括共享图片所要发送给的客户端ID。
7.根据权利要求3或4所述的方法,其特征在于,在所述步骤A和步骤B之间,该方法进一步包括收到共享通知消息的客户端向发起图片共享的客户端发送图片请求消息,发起图片共享的客户端接收图片请求消息。
8.根据权利要求3或4所述的方法,其特征在于,步骤C中所述查找包括搜索客户端对应的接收资源信息,查看其中全部文件是否接收完毕为否的信息,找到对应的发起图片共享的客户端ID和资源ID。
9.根据权利要求8所述的方法,其特征在于,步骤C中所述查找具有共享图片的在线的其它客户端,包括根据所找到的发起图片共享的客户端ID和资源ID在共享服务器所保存的共享资源信息中查找共享图片所要发送给的客户端ID,选择其中非自身ID的在线客户端。
10.根据权利要求3或4所述的方法,其特征在于,步骤C中所述判断发起图片共享的客户端是否在线,包括所述登录共享服务器的客户端向发起图片共享的客户端发送图片请求消息,判断一定时间内是否收到发起图片共享客户端的响应消息,如果收到,发起图片共享的客户端在线;否则,发起图片共享的客户端离线。
全文摘要
本发明公开一种图片共享系统和方法。该系统包括用于为客户端分配资源ID并保存共享资源信息和每个客户端的接收资源信息的共享服务器、用于保存共享列表的客户端和P2P服务器。该方法包括发起图片共享的客户端发送共享通知消息并给共享服务器发送共享消息;接收共享图片,向共享服务器发送接收成功消息,共享服务器修改对应信息;客户端登录共享服务器,查找在离线期间向自己发起图片共享的客户端;向发起图片共享的客户端发送图片请求消息或者查找具有共享图片的其它客户端,向在线的其它客户端发送图片请求消息。本发明可以使在离线期间没有收到共享图片的客户端在上线时可以重新收到共享图片。
文档编号H04L12/00GK101039250SQ200610065088
公开日2007年9月19日 申请日期2006年3月16日 优先权日2006年3月16日
发明者伍海君, 王麒 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1