一种搜索局域网内即时通信用户的方法

文档序号:7619444阅读:203来源:国知局
专利名称:一种搜索局域网内即时通信用户的方法
技术领域
本发明涉及即时通信技术领域,特别是涉及一种搜索局域网内即时通信(IM)用户的方法。
背景技术
随着IM技术的飞速发展,IM工具已经成为比较普遍的通信工具,使用IM工具进行通信的用户日益增多,用户通过IM客户端发送和接收IM,以达到快速传递消息的目的。
目前,很多企业利用其局域网进行IM,即利用IM工具实现企业内部员工之间的交流。在这种情况下,通常由企业中的一个成员发起建立IM群组,然后邀请本企业内其它IM用户加入群组。在现有技术中,群组发起人一般通过两种方式邀请用户加入第一种方式,群组发起人预先获知其准备邀请的群组候选IM用户的IM号码,然后利用IM号码向候选IM用户发出邀请;第二种方式,群组发起人也可以请求IM中心服务器按照一定的搜索条件搜索IM用户,IM中心服务器将搜索到的满足搜索条件的IM用户的信息返回群组发起人,群组发起人从IM中心服务器返回的满足搜索条件的IM用户中选择合适的作为群组候选IM用户,然后向候选IM用户发出邀请。
显而易见,第一种方式在实现上比较繁琐,群组发起人必须逐一获知群组候选IM用户的IM号码,才能够发出邀请,对于候选IM用户较大的情况,群组发起人的工作量太大。
第二种方式虽然利用IM中心服务器搜索群组候选IM用户,但也有如下缺陷首先,连接到IM中心服务器的用户数目非常庞大,同时接收到众多群组发起人的搜索请求的概率非常高,所以IM中心服务器容易产生拥塞或者延时;其次,IM中心服务器通常依据对用户的性别、年龄或所在城市等进行限定的搜索条件进行搜索,而无法搜索到同一局域网的所有IM用户,所以IM中心服务器无法有效地实现对局域网内部IM用户的搜索。

发明内容
有鉴于此,本发明的主要目的在于提供一种搜索局域网内IM用户的方法,实现对局域网内IM用户的简便有效的搜索。
本发明的目的是通过如下技术方案实现的一种搜索局域网内即时通信用户的方法,其包括A、第一即时通信IM客户端生成包含其自身接收地址的广播探测消息,并直接向同一局域网内的第二IM客户端发出该广播探测消息;B、第二IM客户端在预先设定的侦听地址上接收到第一IM客户端的广播探测消息后,生成包含其自身用户信息的探测响应消息,并按照接收到的广播探测消息中的接收地址向所述第一IM客户端返回所生成的探测响应消息;C、所述第一IM客户端在接收到第二IM客户端返回的探测响应消息后,保存并显示该探测响应消息中包含的第二IM客户端的用户信息。
其中,所述第一IM客户端生成广播探测消息之后,还包括第一IM客户端对所生成的广播探测消息加密,然后发出加密后的广播探测消息,在步骤B中,所述第二IM客户端在接收到广播探测消息之后,还包括第二IM客户端对接收到的广播探测消息解密,如果解密成功,则生成探测响应消息并对生成的探测响应消息加密,然后将加密后的探测响应消息返回第一IM客户端;如果解密失败,则丢弃该数据包,在步骤C中,所述第一IM客户端在接收到探测响应消息之后,还包括第一IM客户端对接收到的探测响应消息解密,如果解密成功,则保存并显示探测响应消息中包含的第二IM客户端的用户信息;如果解密失败,则丢弃该数据包。
其中,该方法进一步包括预先设置所述广播探测消息和探测响应消息的格式,在步骤A中,所述第一IM客户端生成广播探测消息并加密为第一IM客户端按照预先设置的广播探测消息的格式生成广播探测消息,该广播探测消息中还包含第一IM客户端的IM号码;第一IM客户端利用其自身的IM号码对生成的广播探测消息进行加密,然后发出加密后的广播探测消息,在步骤B中,所述第二IM客户端对广播探测消息解密为第二IM客户端按照预先设置的广播探测消息的格式从广播探测消息中解析出第一IM客户端的IM号码,利用该IM号码对广播探测消息进行解密,所述第二IM客户端对探测响应消息加密为第二IM客户端按照预先设置的探测响应消息的格式生成探测响应消息,该探测响应消息中还包含第二IM客户端的IM号码;第二IM客户端利用其自身的IM号码对生成的探测响应消息加密,在步骤C中,所述第一IM客户端对探测响应消息解密为第一IM客户端按照预先设置的探测响应消息的格式从探测响应消息中解析出第二IM客户端的IM号码,利用该IM号码对探测响应消息进行解密。
其中,该方法进一步包括预先设置所述广播探测消息和探测响应消息的格式,在步骤A中,所述第一IM客户端生成广播探测消息为第一IM客户端按照预先设置的广播探测消息的格式生成广播探测消息,在步骤B中,所述第二IM客户端在接收到广播探测消息之后,还包括第二IM客户端利用预先设置的广播探测消息的格式对接收到的广播探测消息进行解析,如果解析出合理的消息数据,则按照预先设置的探测响应消息的格式生成探测响应消息,然后将探测响应消息返回第一IM客户端;如果解析出不合理的消息数据,则丢弃该数据包,在步骤C中,所述第一IM客户端在接收到探测响应消息之后,还包括第一IM客户端利用预先设置的探测响应消息的格式对接收到的探测响应消息进行解析,如果解析出合理的消息数据,则保存并显示探测响应消息中包含的第二IM客户端的用户信息;如果解析出不合理的消息数据,则丢弃该数据包。
其中,在步骤A中,所述第一IM客户端发出广播探测消息为第一IM客户端生成广播地址,利用该广播地址发出广播探测消息,发送完毕后关闭该广播地址,并开启所述广播探测消息中包含的接收地址,在步骤B中,所述第二IM客户端接收广播探测消息为第二IM客户端生成包含预先设定的侦听端口号的侦听地址,利用该侦听地址接收广播探测消息,接收完毕后关闭该侦听地址,所述第二IM客户端发送探测响应消息为第二IM客户端生成发送地址,利用该发送地址发送该探测响应消息,发送完毕后关闭该发送地址,在步骤C中,所述第一IM客户端接收探测响应消息为第一IM客户端利用开启的接收地址接收探测响应消息,接收完毕之后关闭该接收地址。
其中,所述广播地址为包含所述第一IM客户端的局域网IP地址和发出广播探测消息的端口号的套接字,所述接收地址为包含所述第一IM客户端的局域网IP地址和接收探测响应消息的端口号的套接字,所述侦听地址为包含所述第二IM客户端的局域网IP地址和预先设定的侦听端口号的套接字;所述发送地址为包含所述第二IM客户端的局域网IP地址和发送探测响应消息的端口号的套接字。
优选地,在步骤A中,所述第一IM客户端发出广播探测消息之后,还包括第一IM客户端启动预先设置的探测响应定时器,在该探测响应定时器超时后,退出本流程。
其中,步骤C还包括第二IM客户端判断接收到的探测响应消息的数量是否超过预先设置的上限,如果是,则停止接收探测响应消息;否则继续接收探测响应消息。
其中,所述第二IM客户端为一或多个与第一IM客户端属于同一局域网的IM客户端,所述第二IM客户端的用户信息至少包含第二IM客户端的IM号码。
其中,所述第一IM客户端为一群组的发起方,该方法还包括所述第一IM客户端和第二IM客户端登录IM中心服务器;所述第一IM客户端从返回探测响应消息的所有第二IM客户端中选择群组的候选IM客户端,然后通过IM中心服务器向候选IM客户端发出加入群组邀请消息。
从上述技术方案可以看出,本发明提供的搜索局域网内IM用户的方法的关键点在于IM用户直接向局域网内其它IM用户发出包含其自身接收地址的广播探测消息,其它IM用户向该接收地址返回包含其自身用户信息的探测响应消息。使用本发明的方法可以无需通过IM中心服务器即可实现对局域网内IM用户的搜索,从而可以大大简化获取局域网内IM用户信息的过程,便于从局域网中发展IM群组成员或寻找IM好友,更进一步,为群组数量和群组中成员的数量增加奠定了良好基础。


图1是本发明的管理员搜索局域网内普通用户的概括性流程图;图2是根据本发明一优选实施例的管理员从普通用户获取用户信息的流程图;图3是根据本发明一优选实施例的局域网内IM用户向群组管理员提供用户信息的流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的核心在于群组管理员向局域网内其它IM用户发送广播探测消息,其它IM用户在接收到广播探测消息后,向群组管理员返回包含用户信息的探测响应消息,群组管理员接收探测响应消息,保存并显示用户信息。
在本文中,群组发起人通常作为群组管理员(以下简称为管理员),局域网内除管理员以外的其它IM用户作为普通用户。
图1是本发明的搜索局域网内普通用户的概括性流程图,从图1中可以看出,本发明大致包括如下步骤步骤101预先设置局域网内广播探测消息、探测响应消息的格式、以及普通用户侦听广播探测消息的端口号。
步骤102管理员启动广播线程,普通用户启动侦听线程;启动广播线程的目的在于使发出广播探测消息和接收探测响应的处理过程对管理员上运行的其它线程不受影响;同样,起动侦听线程的目的在于使侦听广播探测消息和发送探测响应消息的处理过程对普通用户上运行的其它线程不受影响。
步骤103管理员按照预先设置的广播探测消息格式生成广播探测消息并发出该广播探测消息。
步骤104普通用户在预先设置的侦听广播探测消息的端口上侦听广播探测消息。
步骤105普通用户发送包含用户信息的探测响应消息至管理员;步骤106管理员接收探测响应消息并显示其中携带的用户信息;步骤107管理员关闭广播线程,普通用户关闭侦听线程。
下面通过参考图2和图3,并结合本发明一优选实施例对上述概括性流程进行详细描述。
图2是本发明一优选实施例的管理员从普通用户获取用户信息的流程图,从图2中可以看出,在局域网内的管理员侧,获取普通用户信息的流程具体包括如下步骤步骤201管理员在登录后启动广播线程。
步骤202管理员按照预先设置的格式生成广播探测消息的数据包,该消息中包含管理员在局域网内的本地IP地址即探测响应消息返回的IP地址、探测响应消息返回的端口号、群组标识和管理员的IM号码;在广播探测消息中携带探测响应消息返回的IP地址和端口号的目的是向接收到广播探测消息的普通用户提供返回探测响应消息的地址。
步骤203管理员使用其自身的IM号码对广播探测消息的数据包进行加密;对数据包进行加密的目的是防止数据包在局域网传输过程中被恶意用户破解,可采用任何适当的加密技术进行加密。
步骤204管理员生成UDP广播套接字,将经过加密的广播探测消息的数据包在UDP广播套接字中缓存,并通过该套接字发送经过加密的广播探测消息;UDP广播套接字包含管理员IP地址以及发送广播探测消息的端口号。
步骤205在广播探测消息发送完毕之后,管理员关闭所生成的UDP广播套接字,同时启动等待局域网内普通用户返回探测响应消息的接收探测响应定时器,然后执行步骤206;在定时器超时后执行步骤211;接收探测响应定时器的作用在于可以保证在设定时间段内如果未接收到普通用户的探测响应消息时,强制性关闭广播线程,以防止浪费资源。
步骤206管理员生成UDP接收套接字,该套接字中的IP地址为管理员的本地IP地址,端口号为广播探测消息中包含的接收探测响应消息的端口号。
步骤207管理员在UDP接收套接字的端口等待接收探测响应消息数据包。
步骤208管理员在接收到普通用户返回的探测响应消息数据包后,按照预先设置的探测响应消息的格式解析数据包的包头数据,得到发出探测响应消息的普通用户的IM号码,然后用该普通用户的IM号码作为密钥对数据包解密,如果解密成功,则执行步骤209;否则认为该数据包为非法数据包,丢弃该数据包,返回步骤207,重新在UDP接收套接字的端口等待接收探测响应消息数据包。
步骤209管理员按照预先设置的探测响应消息的格式对该数据包进行解析,如果解析出合理的消息数据,则认为该数据包是合法数据包,保存该数据包后执行步骤210;否则认为该数据包是非法数据包,丢弃该数据包,执行步骤207,重新在UDP接收套接字的端口等待接收探测响应数据包。
步骤210管理员判断接收到的合法探测响应消息数据包的数量是否超过预先设置的上限,如果是,则执行步骤211;否则,执行步骤207,重新在UDP接收套接字的端口等待接收探测响应数据包。
步骤211管理员停止在UDP接收套接字的端口等待接收探测响应数据包。
步骤212管理员显示所有保存的探测响应数据包包含的普通用户的用户信息。
步骤213管理员关闭UDP接收套接字,然后关闭广播线程。
图3是本发明一优选实施例的普通用户向管理员提供用户信息的流程图,从图3中可见,在普通用户侧,提供用户信息的流程具体包括以下步骤步骤301普通用户在登录后启动侦听线程。
步骤302普通用户生成UDP侦听套接字,该套接字包含普通用户的本地IP地址以及预先设置的侦听广播探测消息的端口号。
步骤303普通用户在侦听广播消息的端口等待广播探测消息数据包。
步骤304在接收到广播探测消息数据包后,按照预先设置的广播探测消息的格式解析数据包的包头数据,得到发出广播探测消息的管理员的IM号码,然后用管理员的IM号码对数据包进行解密,如果解密成功,则执行步骤305;否则,认为该数据包为非法数据包,丢弃该数据包,返回步骤303,重新在侦听广播消息的端口等待广播探测消息数据包。
步骤305普通用户按照预先设置的广播探测消息的格式对该数据包进行解析,如果解析出合理的消息数据,则认为该数据包为合法数据包,执行步骤306;否则,认为该数据包为非法数据包,丢弃该数据包,返回步骤303,重新在侦听广播消息的端口等待广播探测消息数据包。
步骤306普通用户停止在侦听广播消息的端口等待广播探测消息数据包,并关闭UDP侦听套接字。
步骤307普通用户生成UDP发送套接字,该套接字中的IP地址和端口号分别为广播探测消息中包含的管理员的本地IP地址和管理员接收探测响应消息的端口号。
步骤308普通用户按照预先设置的探测响应消息的格式生成探测响应消息,并利用普通用户的IM号码对该探测响应消息加密;该探测响应消息包含普通用户的用户信息以及群组号码标识和管理员的IM号码,该普通用户的用户信息包含普通用户的IM号码和昵称。
步骤309普通用户利用UDP发送套接字发送探测响应消息。
步骤310普通用户关闭UDP发送套接字,然后关闭侦听线程。
在上述优选实施例中,管理员将保存的所有普通用户的用户信息一并显示,这样便于管理员在后续选择群组成员的过程中简化操作,在统一界面上通过一次操作即可向多个普通用户发出加入群组的邀请。在本发明的其它实施例中,管理员也可以按照接收到合法探测响应数据包的时间先后分别显示普通用户的用户信息。
综上所述,在管理员发出广播探测消息后,接收到广播探测消息的普通用户向管理员返回包含其自身用户信息的探测响应消息,管理员在接收到探测响应消息后,保存并显示普通用户的用户信息。从而,群组的管理员可以搜索到局域网内使用IM客户端的所有IM用户,并可查看这些IM用户的详细资料,以便进行后续的选择IM用户并邀请该用户的步骤。
执行上述优选实施例的流程后,群组管理员邀请其它IM用户加入群组的步骤为管理员和其它IM用户登录IM中心服务器;管理员从返回探测响应消息的所有IM用户中选择群组的候选IM用户,然后通过IM中心服务器向候选IM用户发出加入群组邀请消息。
在上述优选实施例中,群组的管理员获取其它IM用户的用户信息,用于邀请群组用户的目的。应该理解,在本发明的其它实施例中,局域网内的任何IM用户均可通过启动广播线程来搜索其它IM用户的用户信息,用于其它目的,比如从同一局域网内选择好友等等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种搜索局域网内即时通信用户的方法,其特征在于,其包括A、第一即时通信IM客户端生成包含其自身接收地址的广播探测消息,并直接向同一局域网内的第二IM客户端发出该广播探测消息;B、第二IM客户端在预先设定的侦听地址上接收到第一IM客户端的广播探测消息后,生成包含其自身用户信息的探测响应消息,并按照接收到的广播探测消息中的接收地址向所述第一IM客户端返回所生成的探测响应消息;C、所述第一IM客户端在接收到第二IM客户端返回的探测响应消息后,保存并显示该探测响应消息中包含的第二IM客户端的用户信息。
2.根据权利要求1所述的方法,其特征在于,在步骤A中,所述第一IM客户端生成广播探测消息之后,还包括第一IM客户端对所生成的广播探测消息加密,然后发出加密后的广播探测消息,在步骤B中,所述第二IM客户端在接收到广播探测消息之后,还包括第二IM客户端对接收到的广播探测消息解密,如果解密成功,则生成探测响应消息并对生成的探测响应消息加密,然后将加密后的探测响应消息返回第一IM客户端;如果解密失败,则丢弃该数据包,在步骤C中,所述第一IM客户端在接收到探测响应消息之后,还包括第一IM客户端对接收到的探测响应消息解密,如果解密成功,则保存并显示探测响应消息中包含的第二IM客户端的用户信息;如果解密失败,则丢弃该数据包。
3.根据权利要求2所述的方法,其特征在于,该方法进一步包括预先设置所述广播探测消息和探测响应消息的格式,在步骤A中,所述第一IM客户端生成广播探测消息并加密为第一IM客户端按照预先设置的广播探测消息的格式生成广播探测消息,该广播探测消息中还包含第一IM客户端的IM号码;第一IM客户端利用其自身的IM号码对生成的广播探测消息进行加密,然后发出加密后的广播探测消息,在步骤B中,所述第二IM客户端对广播探测消息解密为第二IM客户端按照预先设置的广播探测消息的格式从广播探测消息中解析出第一IM客户端的IM号码,利用该IM号码对广播探测消息进行解密,所述第二IM客户端对探测响应消息加密为第二IM客户端按照预先设置的探测响应消息的格式生成探测响应消息,该探测响应消息中还包含第二IM客户端的IM号码;第二IM客户端利用其自身的IM号码对生成的探测响应消息加密,在步骤C中,所述第一IM客户端对探测响应消息解密为第一IM客户端按照预先设置的探测响应消息的格式从探测响应消息中解析出第二IM客户端的IM号码,利用该IM号码对探测响应消息进行解密。
4.根据权利要求1所述的方法,其特征在于,该方法进一步包括预先设置所述广播探测消息和探测响应消息的格式,在步骤A中,所述第一IM客户端生成广播探测消息为第一IM客户端按照预先设置的广播探测消息的格式生成广播探测消息,在步骤B中,所述第二IM客户端在接收到广播探测消息之后,还包括第二IM客户端利用预先设置的广播探测消息的格式对接收到的广播探测消息进行解析,如果解析出合理的消息数据,则按照预先设置的探测响应消息的格式生成探测响应消息,然后将探测响应消息返回第一IM客户端;如果解析出不合理的消息数据,则丢弃该数据包,在步骤C中,所述第一IM客户端在接收到探测响应消息之后,还包括第一IM客户端利用预先设置的探测响应消息的格式对接收到的探测响应消息进行解析,如果解析出合理的消息数据,则保存并显示探测响应消息中包含的第二IM客户端的用户信息;如果解析出不合理的消息数据,则丢弃该数据包。
5.根据权利要求1所述的方法,其特征在于,在步骤A中,所述第一IM客户端发出广播探测消息为第一IM客户端生成广播地址,利用该广播地址发出广播探测消息,发送完毕后关闭该广播地址,并开启所述广播探测消息中包含的接收地址,在步骤B中,所述第二IM客户端接收广播探测消息为第二IM客户端生成包含预先设定的侦听端口号的侦听地址,利用该侦听地址接收广播探测消息,接收完毕后关闭该侦听地址,所述第二IM客户端发送探测响应消息为第二IM客户端生成发送地址,利用该发送地址发送该探测响应消息,发送完毕后关闭该发送地址,在步骤C中,所述第一IM客户端接收探测响应消息为第一IM客户端利用开启的接收地址接收探测响应消息,接收完毕之后关闭该接收地址。
6.根据权利要求5所述的方法,其特征在于,所述广播地址为包含所述第一IM客户端的局域网IP地址和发出广播探测消息的端口号的套接字,所述接收地址为包含所述第一IM客户端的局域网IP地址和接收探测响应消息的端口号的套接字,所述侦听地址为包含所述第二IM客户端的局域网IP地址和预先设定的侦听端口号的套接字;所述发送地址为包含所述第二IM客户端的局域网IP地址和发送探测响应消息的端口号的套接字。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在步骤A中,所述第一IM客户端发出广播探测消息之后,还包括第一IM客户端启动预先设置的探测响应定时器,在该探测响应定时器超时后,退出本流程。
8.根据权利要求1至6中任一项所述的方法,其特征在于,步骤C还包括第二IM客户端判断接收到的探测响应消息的数量是否超过预先设置的上限,如果是,则停止接收探测响应消息;否则继续接收探测响应消息。
9.根据权利要求1至6中任一项所述的方法,其特征在于,所述第二IM客户端为一或多个与第一IM客户端属于同一局域网的IM客户端,所述第二IM客户端的用户信息至少包含第二IM客户端的IM号码。
10.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一IM客户端为一群组的发起方,该方法还包括所述第一IM客户端和第二IM客户端登录IM中心服务器;所述第一IM客户端从返回探测响应消息的所有第二IM客户端中选择群组的候选IM客户端,然后通过IM中心服务器向候选IM客户端发出加入群组邀请消息。
全文摘要
本发明提供了一种搜索局域网内IM用户的方法,该方法的关键点在于IM用户直接向局域网内其它IM用户发出包含其自身接收地址的广播探测消息,其它IM用户向该接收地址返回包含其自身用户信息的探测响应消息。使用本发明的方法可以无需通过IM中心服务器即可实现对局域网内IM用户的搜索,从而可以大大简化获取局域网内IM用户信息的过程,便于从局域网中发展IM群组成员或寻找IM好友,更进一步,为群组数量和群组中成员的数量增加奠定了良好基础。
文档编号H04L12/28GK1885861SQ20051007731
公开日2006年12月27日 申请日期2005年6月20日 优先权日2005年6月20日
发明者李斌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1