一种网络服务发现方法、客户端及服务器、电子设备与流程

文档序号:21406776发布日期:2020-07-07 14:40阅读:130来源:国知局
一种网络服务发现方法、客户端及服务器、电子设备与流程

本发明涉及计算机网络技术领域,特别是指一种网络服务发现方法、客户端及服务器、电子设备。



背景技术:

目前,客户端与服务器之间建立网络连接,需要预先获知服务器的网络地址(ip地址),而服务器的网络地址有可能因修改或是动态分配而改变,客户端连接服务器之前需要手动查询、输入服务器当前的网络地址,才能实现客户端与服务器之间正常的网络连接,操作繁琐,费时费力。

尤其是在电子白板与移动端连接的应用场景中,移动端(如智能手机、ipad等智能移动终端)需与电子白板建立网络连接以实现移动端与电子白板之间的数据交互,电子白板作为服务器,启动过程中可能是动态分配ip地址,移动端连接电子白板之前需要获取电子白板当前的ip地址,然后建立二者之间的网络连接;另一方面,电子白板可能配置了有线网卡、无线网卡等多个网卡单元,从而拥有与网卡数量相对应的多个ip地址,移动端需要确定建立网络连接的唯一一个ip地址。



技术实现要素:

有鉴于此,本发明的目的在于提出一种网络服务发现方法、客户端及服务器、电子设备,客户端可快速确定与服务器建立网络连接的网络地址。

基于上述目的,本发明提供了一种网络服务发现方法,应用于客户端,包括:

发送广播消息,所述广播消息包括服务器的端口号;

接收所述服务器发送的响应消息,所述响应消息包括所述服务器的网络地址、唯一标识号、时间戳;

根据所述响应消息,确定与服务器建立网络连接的网络地址。

可选的,接收多个所述响应消息,对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,若各所述响应消息的ip地址不一致,唯一标识号一致,则按照时间戳的先后顺序对各所述响应消息进行排序,选取时间最早的响应消息中的ip地址作为所述服务器的ip地址。

可选的,接收多个所述响应消息,对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,若各所述响应消息的ip地址一致,唯一标识号一致,则将所述响应消息中的ip地址作为所述服务器的ip地址。

可选的,持续接收多个所述响应消息,对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,根据各所述响应消息的ip地址、唯一标识号、时间戳,判断各响应消息的网络连接状态,选取网络连接状态最好的响应消息中的ip地址作为所述服务器的ip地址。

本发明实施例还提供一种网络服务发现方法,应用于服务器,包括:

接收客户端发送的广播消息;

当所述广播消息的端口号与所述服务器的端口号一致时,发送响应消息,所述响应消息包括所述服务器的网络地址、唯一标识号、时间戳。

可选的,所述服务器包括多个网卡单元,各所述网卡单元分别对应相应的网络地址,各所述网卡单元分别发送所述响应消息,各所述响应消息包括相应网卡单元对应的网络地址、所述服务器的唯一标识号、相应网卡单元发送所述响应消息的时间戳。

可选的,所述时间戳精确至毫秒级或是微秒级。

本发明实施例还提供一种客户端,包括:

第一消息发送模块,用于发送广播消息,所述广播消息包括服务器的端口号;

第一消息接收模块,用于接收所述服务器发送的响应消息,所述响应消息包括服务器的网络地址、唯一标识号、时间戳;

消息解析模块,用于根据所述响应消息,确定与所述服务器建立网络连接的网络地址。

可选的,所述第一消息接收模块接收多个所述响应消息,所述消息解析模块对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,若各所述响应消息的ip地址不一致,唯一标识号一致,则按照时间戳的先后顺序对各所述响应消息进行排序,选取时间最早的响应消息中的ip地址作为所述服务器的ip地址。

可选的,所述第一消息接收模块接收多个所述响应消息,所述消息解析模块对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,若各所述响应消息的ip地址一致,唯一标识号一致,则将所述响应消息中的ip地址作为所述服务器的ip地址。

可选的,所述第一消息接收模块持续接收多个所述响应消息,对多个所述响应消息进行解析,得到各所述响应消息的ip地址、唯一标识号、时间戳,根据各所述响应消息的ip地址、唯一标识号、时间戳,判断各响应消息的网络连接状态,选取网络连接状态最好的响应消息中的ip地址作为所述服务器的ip地址。

本发明实施例还提供一种服务器,包括:

第二消息接收模块,用于接收客户端发送的广播消息;

第二消息发送模块,当判断所述广播消息的端口号与所述服务器的端口号一致时,用于发送响应消息,所述响应消息包括服务器的网络地址、唯一标识号、时间戳。

可选的,所述服务器包括多个网卡单元,各所述网卡单元分别对应相应的网络地址,各所述网卡单元分别发送所述响应消息,各所述响应消息包括相应网卡单元对应的网络地址、所述服务器的唯一标识号、相应网卡单元发送所述响应消息的时间戳。

可选的,所述时间戳精确至毫秒级或是微秒级。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述网络发现方法。

从上面所述可以看出,本发明提供的网络服务发现方法、客户端及服务器、电子设备,客户端发送包括服务器端口的广播消息,服务器接收广播消息,向客户端发送包括服务器的网络地址、唯一标识号、时间戳等数据的响应消息,客户端接收并解析响应消息,确定与服务器建立网络连接的网络地址。本发明可自动的获取服务器的网络地址,实现客户端与服务器的快速网络连接。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的应用于客户端的方法流程示意图;

图2为本发明实施例的应用于服务器的方法流程示意图;

图3为本发明实施例的客户端的结构框图;

图4为本发明实施例的服务器的结构框图;

图5为本发明实施例的系统结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

本发明实施例提供应用于客户端的网络服务发现方法,包括:

发送广播消息,所述广播消息包括服务器的端口号;

接收服务器发送的响应消息,所述响应消息包括服务器的网络地址、唯一标识号、时间戳;

根据所述响应消息,确定与服务器建立网络连接的网络地址。

本发明实施例中,客户端先发送udp广播消息,该udp广播消息包括了服务器的端口号,服务器接收udp广播消息,判断端口号与自己的端口号一致,服务器向客户端发送响应消息,该响应消息中包括服务器的网络地址、唯一标识号及时间戳,客户端接收响应消息,对响应消息进行解析,获取服务器的网络地址,根据服务器的网络地址与服务器建立网络连接。本发明能够自动获取服务器的网络地址,从而实现客户端与服务器之间的网络连接。

图1为本发明实施例的应用于客户端的方法流程示意图,如图所示,本发明实施例提供的应用于客户端的网络服务发现方法,包括:

s10:发送广播消息,所述广播消息包括服务器的端口号;

客户端向同一网段的终端发送udp广播消息,该udp广播消息包括服务器的端口号。服务器的端口号可以是服务器与客户端之间预先协商确定的。

s11:接收服务器发送的响应消息,所述响应消息包括服务器的网络地址、唯一标识号、时间戳;

结合图5所示,客户端发送udp广播消息,接收udp广播消息的主机判断自己的端口号与udp广播消息中的端口号是否一致,端口号一致的主机即为服务器,服务器根据接收的udp广播消息,向客户端发送响应消息,该响应消息中包括服务器的ip地址、唯一标识号、时间戳等,如果需要发送数据内容,该响应消息还包括数据内容;其中,唯一标识号是用于标识服务器的唯一性的号码,可以是服务器的预先生成的全局唯一标识号(guid)等。

对于服务器配置有多个网卡单元,服务器具有与网卡单元数量相应的网络地址,各网卡单元均向客户端发送相应的响应消息,各响应消息均包括网卡单元对应的ip地址、唯一标识号、时间戳等,如果需要发送数据内容,各响应消息还包括数据内容;各响应消息的唯一标识号一致,均为服务器的唯一标识号,各响应消息的时间戳为相应的网卡单元发送相应的响应消息的时间,于一种实施例中,时间戳可精确至毫秒级或是微秒级,以便于按照时间顺序确定各响应消息的先后顺序;如果存在需要发送的数据内容,各响应消息的数据内容一致。

s12:根据所述响应消息,确定与服务器建立网络连接的网络地址。

客户端接收服务器返回的响应消息,对响应消息进行解析,获取响应消息中的ip地址、唯一标识号、时间戳。

对于服务器只有一个网卡单元的情况,正常情况下可收到一个响应消息,该响应消息中的ip地址即为服务器的ip地址;若因重传等原因收到了多个响应消息,根据各响应消息的ip地址与唯一标识号,判断各响应消息的ip地址一致,各响应消息的唯一标识号一致,则可判断服务器只有一个网卡单元,此时,可直接将响应消息中的ip地址作为服务器的ip地址,后续客户端通过该ip地址与已知的端口号,与服务器建立网络连接。

对于服务器有多个网卡单元的情况,若收到了多个响应消息,根据各响应消息的ip地址与唯一标识号,判断各响应消息的ip地址不一致,各响应消息的唯一标识号一致,则可判断服务器有多个网卡单元,此时,根据各响应消息的时间戳对各响应消息进行排序,排序之后,将时间最早(响应最快)的响应消息中的ip地址作为服务器的ip地址,后续客户端通过该ip地址与已知的端口号,与服务器建立网络连接。

可选的,对于服务器有多个网卡单元的情况,可从多个网卡单元中选取网络连接状态最佳的一个网卡单元,将其ip地址作为服务器的ip地址,用于与客户端建立网络连接。选取最佳的网卡单元的方法,可以是根据一定时间之内收到的若干响应消息,根据时间戳判断响应速度快,根据数据包序号判断丢包、乱序问题少,根据数据内容判断数据内容完整等多项指标。也可以是,首次根据时间戳确定一个ip地址,确定该ip地址对应的网卡单元之后,持续发送udp广播消息,持续接收相应的响应消息,根据一定时间之内接收的若干响应消息,选取当前网络连接状态最佳的一个网卡单元,若当前网络连接状态最佳的一个网卡单元与当前实际连接的网卡单元不同,则将当前实际连接的网卡单元切换为当前网络连接状态最佳的网卡单元,从而保证客户端与服务器之间保持最佳的网络连接状态。

图2为本发明实施例的应用于服务器的方法流程示意图。如图所示,本发明实施例提供的应用于服务器的网络服务发现方法,包括:

s20:接收客户端发送的广播消息;

s21:当广播消息的端口号与自身的端口号一致时,发送响应消息,响应消息包括服务器的网络地址、唯一标识号、时间戳。

客户端为获取服务器的网络地址,首先发送udp广播消息,服务器接收udp广播消息后,判断其中的端口号与自己的端口号一致,向客户端返回响应消息,该响应消息中携带了服务器的网络地址、唯一标识号、时间戳,若有数据内容,同时携带数据内容。

本发明实施例中,服务器可以配置一个或多个网卡单元,对于多个网卡单元的情况,各网卡单元接收udp广播消息之后,均向客户端发送相应的响应消息,各响应消息中分别携带了相应网卡单元的ip地址、服务器的唯一标识号以及相应网卡单元发送响应消息的时间戳,其中,时间戳可精确至毫秒级或是微秒级,以供客户端根据时间戳确定响应最快的网卡单元。

客户端接收服务器发送的响应消息,若仅有一个响应消息,则将响应消息中的ip地址作为服务器的ip地址,后续根据该ip地址与服务器建立网络连接。若响应消息有多个,则对各个响应消息进行解析,在判断唯一标识号一致,ip地址不一致的情况下,对各响应消息按照时间戳顺序排序,选取时间最早的时间戳对应的响应消息所携带的ip地址为服务器的ip地址,后续根据该ip地址与服务器建立网络连接。

图3为本发明实施例的客户端的结构框图。如图所示,本发明实施例提供的客户端,包括:

第一消息发送模块,用于发送广播消息,所述广播消息包括服务器的端口号;

第一消息接收模块,用于接收服务器发送的响应消息,所述响应消息包括服务器的网络地址、唯一标识号、时间戳;

消息解析模块,用于根据所述响应消息,确定与服务器建立网络连接的网络地址。

客户端向同一网段的终端发送udp广播消息,该udp广播消息包括服务器的端口号。服务器的端口号可以是服务器与客户端之间预先协商确定的。

结合图5所示,客户端发送udp广播消息,接收udp广播消息的主机判断自己的端口号与udp广播消息中的端口号是否一致,端口号一致的主机即为服务器,服务器根据接收的udp广播消息,向客户端发送响应消息,该响应消息中包括服务器的ip地址、唯一标识号、时间戳等,如果需要发送数据内容,该响应消息还包括数据内容;其中,唯一标识号是用于标识服务器的唯一性的号码,可以是服务器的预先生成的全局唯一标识号(guid)等。

对于服务器配置有多个网卡单元,服务器具有与网卡单元数量相应的网络地址,各网卡单元均向客户端发送相应的响应消息,各响应消息均包括网卡单元对应的ip地址、唯一标识号、时间戳等,如果需要发送数据内容,各响应消息还包括数据内容;各响应消息的唯一标识号一致,均为服务器的唯一标识号,各响应消息的时间戳为相应的网卡单元发送相应的响应消息的时间,于一种实施例中,时间戳可精确至毫秒级或是微秒级,以便于按照时间顺序确定各响应消息的先后顺序;如果存在需要发送的数据内容,各响应消息的数据内容一致。

客户端的第一消息接收模块接收服务器返回的响应消息,消息解析模块对响应消息进行解析,获取响应消息中的ip地址、唯一标识号、时间戳。

对于服务器只有一个网卡单元的情况,正常情况下可收到一个响应消息,该响应消息中的ip地址即为服务器的ip地址;若因重传等原因收到了多个响应消息,根据各响应消息的ip地址与唯一标识号,判断各响应消息的ip地址一致,各响应消息的唯一标识号一致,则可判断服务器只有一个网卡单元,此时,可直接将响应消息中的ip地址作为服务器的ip地址,后续客户端通过该ip地址与已知的端口号,与服务器建立网络连接。

对于服务器有多个网卡单元的情况,若收到了多个响应消息,根据各响应消息的ip地址与唯一标识号,判断各响应消息的ip地址不一致,各响应消息的唯一标识号一致,则可判断服务器有多个网卡单元,此时,根据各响应消息的时间戳对各响应消息进行排序,排序之后,将时间最早(响应最快)的响应消息中的ip地址作为服务器的ip地址,后续客户端通过该ip地址与已知的端口号,与服务器建立网络连接。

可选的,对于服务器有多个网卡单元的情况,可从多个网卡单元中选取网络连接状态最佳的一个网卡单元,将其ip地址作为服务器的ip地址,用于与客户端建立网络连接。选取最佳的网卡单元的方法,可以是根据一定时间之内收到的若干响应消息,根据时间戳判断响应速度快,根据数据包序号判断丢包、乱序问题少,根据数据内容判断数据内容完整等多项指标。也可以是,首次根据时间戳确定一个ip地址,确定该ip地址对应的网卡单元之后,持续发送udp广播消息,持续接收相应的响应消息,根据一定时间之内接收的若干响应消息,选取当前网络连接状态最佳的一个网卡单元,若当前网络连接状态最佳的一个网卡单元与当前实际连接的网卡单元不同,则将当前实际连接的网卡单元切换为当前网络连接状态最佳的网卡单元,从而保证客户端与服务器之间保持最佳的网络连接状态。

图4为本发明实施例的服务器的结构框图。如图所示,本发明实施例提供的服务器,包括:

第二消息接收模块,用于接收客户端发送的广播消息;

第二消息发送模块,当判断广播消息的端口号与自身的端口号一致时,用于发送响应消息,响应消息包括服务器的网络地址、唯一标识号、时间戳。

客户端为获取服务器的网络地址,首先发送udp广播消息,服务器接收udp广播消息后,判断其中的端口号与自己的端口号一致,向客户端返回响应消息,该响应消息中携带了服务器的网络地址、唯一标识号、时间戳,若有数据内容,同时携带数据内容。

本发明实施例中,服务器可以配置一个或多个网卡单元,对于多个网卡单元的情况,各网卡单元接收udp广播消息之后,均向客户端发送相应的响应消息,各响应消息中分别携带了相应网卡单元的ip地址、服务器的唯一标识号以及相应网卡单元发送响应消息的时间戳,其中,时间戳可精确至毫秒级或是微秒级,以供客户端根据时间戳确定响应最快的网卡单元。

客户端接收服务器发送的响应消息,若仅有一个响应消息,则将响应消息中的ip地址作为服务器的ip地址,后续根据该ip地址与服务器建立网络连接。若响应消息有多个,则对各个响应消息进行解析,在判断唯一标识号一致,ip地址不一致的情况下,对各响应消息按照时间戳顺序排序,选取时间最早的时间戳对应的响应消息所携带的ip地址为服务器的ip地址,后续根据该ip地址与服务器建立网络连接。

基于上述目的,本发明实施例还提出了一种执行所述网络服务发现方法的装置的一个实施例。所述装置包括:

一个或多个处理器以及存储器。

所述执行所述网络服务发现方法的装置还可以包括:输入装置和输出装置。

处理器、存储器、输入装置和输出装置可以通过总线或者其他方式连接。

存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的网络服务发现方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的网络服务发现方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行所述网络服务发现方法的装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至会员用户行为监控装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置可接收输入的数字或字符信息,以及产生与执行网络服务发现方法的装置的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任意方法实施例中的网络服务发现方法。所述执行所述网络服务发现方法的装置的实施例,其技术效果与前述任意方法实施例相同或者类似。

本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的列表项操作的处理方法。所述非暂态计算机存储介质的实施例,其技术效果与前述任意方法实施例相同或者类似。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。所述计算机程序的实施例,其技术效果与前述任意方法实施例相同或者类似。

此外,典型地,本公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本公开的保护范围不应限定为某种特定类型的装置、设备。本公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

此外,根据本公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本公开的方法中限定的上述功能。

此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。

此外,应该明白的是,本文所述的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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