通信方法和装置制造方法

文档序号:7805271阅读:84来源:国知局
通信方法和装置制造方法
【专利摘要】本发明提出一种通信方法和装置,该通信方法包括判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中;如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。该方法可以节省服务器的带宽资源。
【专利说明】通信方法和装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种通信方法和装置。
【背景技术】
[0002]移动设备可以从电脑上获取数据,在移动设备从电脑上获取数据之前需要建立移动设备与电脑之间的连接。移动设备和电脑可以通过通用串行总线(Universal SerialBus, USB)线建立连接,但是,这种方式需要有USB线。
[0003]在没有USB线时,移动设备与电脑需要采用无线连接传输数据包。当移动设备和电脑不在同一个以太网子网时,目前移动设备和电脑之间传输的数据包需要经过服务器中转,这种方式导致服务器消耗较多的带宽资源。

【发明内容】

[0004]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]为此,本发明的一个目的在于提出一种通信方法,该方法可以通过移动设备和电脑之间的直接无线连接传输数据包,不需要服务器中转,因此可以节省服务器的带宽资源。
[0006]本发明的另一个目的在于提出一种通信装置。
[0007]为达到上述目的,本发明第一方面实施例提出的通信方法,包括:判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中;如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0008]本发明第一方面实施例提出的通信方法,通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0009]为达到上述目的,本发明第二方面实施例提出的通信装置,包括:判断模块,用于判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中;建立模块,用于如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0010]本发明第二方面实施例提出的通信装置,通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0011]为达到上述目的,本发明第三方面实施例提出的通信装置,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为服务器的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中;如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0012]本发明第三方面实施例提出的通信装置,通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0013]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0014]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0015]图1是本发明一实施例提出的通信方法的流程示意图;
[0016]图2是本发明另一实施例提出的通信方法的流程示意图;
[0017]图3是本发明另一实施例提出的通信方法的流程示意图;
[0018]图4是本发明另一实施例提出的通信装置的结构示意图;
[0019]图5是本发明另一实施例提出的通信装置的结构示意图。
【具体实施方式】
[0020]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0021]图1是本发明一实施例提出的通信方法的流程示意图,该方法包括:
[0022]Sll:判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中。
[0023]其中,电脑可以是指个人电脑(Personal Computer, PC),移动设备可以是手机或平板电脑等。
[0024]电脑可以采用公网互联网协议(Internet Protocol, IP)地址上网;或者,电脑也可以通过路由器上网,此时电脑使用的不是公网IP地址。
[0025]移动设备可以通过W1-Fi或者移动网络上网,这两种情况下移动设备都相当于使用路由器上网。
[0026]直接无线连接是指建立连接后通信时不需要服务器中转的连接,对于包括路由器的场景,电脑和移动设备之间的直接无线连接包括相应的路由器。例如,电脑使用公网IP地址时,移动设备端的路由器称为第二路由器,电脑与移动设备之间的直接无线连接是:电脑-第二路由器-移动设备。又例如,电脑通过第一路由器上网时,电脑与移动设备之间的直接无线连接是:电脑-第一路由器-第二路由器-移动设备。
[0027]电脑与移动设备之间的直接无线连接可以是指不需要服务器协助就能够建立的直接连接,或者,也可以是指需要服务器协助才能建立的直接连接。
[0028]具体的,不需要服务器协助能够建立直接连接的场景包括:[0029]电脑使用公网IP地址;或者,
[0030]第一路由器和第二路由器中至少一个满足预设条件,预设条件包括:
[0031]路由器的网络地址转换(NetworkAddress Translation, NAT)类型是完全圆锥型NAT (full cone NAT);或者,
[0032]电脑或移动设备在路由器成功完成端口映射。
[0033]需要服务器协助能够建立直接连接的场景包括:
[0034]第一路由器和第二路由器的NAT类型是除下述情况之外的情况:两者都是对称NAT (Symmetric NAT);或者,一个是对称NAT,另一个是端口受限圆锥型NAT(Port-Restrictedcone NAT)。
[0035]其中,NAT类型可以分为完全圆锥型NAT(full cone NAT)、端口受限圆锥型NAT (Address Restricted cone NAT)、端 口受限圆维型 NAT (Port-Restricted cone NAT)和对称 NAT (Symmetric NAT)。
[0036]另夕卜,本发明实施例的连接不限于传输控制协议(Transmission ControlProtocol, TCP)连接,而是当一方发出数据另一方可以收到即为连接成功。
[0037]S12:如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0038]其中,在不需要服务器协助的场景下,服务器可以将一方的地址信息发送给另一方,在需要服务器协助的场景下,服务器同时将两方的地址信息分别发送给另一方。地址信息可以包括IP地址和端口号。
[0039]具体的,当电脑和使用公网IP地址时,可以将使用电脑的IP地址和端口号发送给移动设备,移动设备接收到该IP地址和端口号后,根据该IP地址和端口号发起建立与电脑的直接无线连接。
[0040]当第一路由器和第二路由器中至少一个的NAT类型是完全圆锥型NAT时,服务器可以将是完全圆锥型NAT的路由器的IP地址和临时分配的端口号发送给另一方。例如,第一路由器的NAT类型是完全圆锥型NAT时,服务器可以将第一路由器的IP地址和临时分配的端口号通过第二路由器发送给移动设备,以便移动设备根据该IP地址和端口号发起建立与电脑的直接无线连接。其中,由于路由器的端口数量有限,在通信时通常会采用端口复用的方式为内网设备分配端口号,因此,上述第一路由器临时分配的端口号是指当前分配给电脑的端口号。
[0041]当第一路由器和第二路由器中至少一个成功完成端口映射时,服务器可以将成功完成端口映射的路由器的IP地址和映射的端口号发送给另一方。例如,第一路由器成功完成端口映射时,可以将第一路由器的IP地址和映射的端口号通过第二路由器发送给移动设备,以便移动设备根据该IP地址和端口号发起建立与电脑的直接连接。其中,与临时分配的端口号不同的是,端口映射时可以将某个指定的端口固定分配给内网设备,因此,上述第一路由器映射的端口号是指固定分配给电脑的端口号。
[0042]另外,需要说明的是,当两个路由器都满足预设条件时,可以任选一个地址信息发
给另一端。
[0043]在需要服务器协助时,服务器可以同时向两端发送另一端的地址信息,以使电脑和移动设备接收到对端的地址信息后,采用UDP打洞的方式建立电脑与移动设备之间的直接连接。
[0044]本实施例通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0045]图2是本发明另一实施例提出的通信方法的流程示意图,本实施例以PC和手机建立连接为例。
[0046]参见图2,本实施例的方法包括:
[0047]S201:PC在需要连接手机时,向服务器发送请求消息,请求消息中携带第一地址信息、PC的标识信息和手机的标识信息。
[0048]其中,当PC使用公网IP地址时,第一地址信息是PC的IP地址和端口号。如果PC使用子网IP地址,第一地址信息是第一路由器的IP地址和第一路由器分配给PC的临时端口号。
[0049]S202:服务器判断PC是否使用公网IP地址,若是,执行S203-S205,否则,执行S206及其后续步骤。
[0050]其中,PC和手机都可以预先向服务器进行注册,将PC的地址信息和PC的标识信息以及手机的地址信息和手机的标识信息对应保存在注册信息中,地址信息包括IP地址和端口号。
[0051]当服务器接收到请求消息后,从该请求消息中获取PC的标识信息和第一地址信息中的IP地址,根据PC的标识信息从注册信息中获取IP地址,如果接收的IP地址与获取的IP地址相同,则确定PC使用公网IP地址,否则未使用公网IP地址。
[0052]S203:服务器将第一地址信息发送给手机。
[0053]其中,服务器可以根据请求消息中包含的手机的标识信息从注册信息中获取手机的地址信息,并根据该地址信息将第一地址信息发送给手机。
[0054]S204:手机根据该第一地址信息发起建立与PC的直接无线连接。
[0055]S205:PC和手机通过该直接无线连接,传输数据包。
[0056]S206:服务器获取第一路由器的NAT类型和第二路由器的NAT类型,判断是否至少一个是完全圆锥型NAT,若是,执行S207-209,否则,执行S210及其后续步骤。
[0057]其中,PC和手机可以通过会话传输应用程序NAT (Session Traversal Utilitiesfor NAT, STUN)检测到第一路由器的NAT类型和第二路由器的NAT类型并与标识信息对应保存到服务器的注册信息中,服务器可以从该注册信息中根据PC的标识信息获取第一路由器的NAT类型,根据手机的标识信息获取第二路由器的NAT类型。
[0058]本实施例假设第一路由器的NAT类型是完全圆锥型NAT,则执行如下流程:
[0059]S207:服务器将第一地址信息发送给手机。
[0060]其中,第一地址信息是第一路由器的IP地址和第一路由器分配给PC的临时端口号。在发送时,服务器可以根据请求消息中包含的手机的标识信息从注册信息中获取手机的地址信息,并根据该地址信息将第一地址信息发送给手机。
[0061]S208:手机根据该第一地址信息发起建立与PC的直接无线连接。
[0062]类似的,当第二路由器的NAT类型是完全圆锥型NAT时,服务器可以将第二地址信息发送给PC,由PC根据该第二地址信息发起建立与手机的直接无线连接,第二地址信息是第二路由器的IP地址和第二路由器分配给手机的临时端口号。[0063]S209:PC和手机通过该直接无线连接,传输数据包。
[0064]S210:服务器判断是否能够协助建立直接连接,若是执行S211-S213,否则,执行S214。
[0065]其中,当第一路由器的NAT类型和第二路由器的NAT类型是除下述类型之外的其他类型时,确定能够协助建立直接连接:
[0066]双方都是对称NAT ;或者,一方是对称NAT,另一方时端口受限圆锥型NAT。
[0067]S211:服务器同时将第一地址信息发送给手机,将第二地址信息发送给PC。
[0068]第一地址信息是第一路由器的IP地址和第一路由器分配给PC的临时端口号,第二地址信息是第二路由器的IP地址和第二路由器分配给手机的临时端口号。第一地址信息和第二地址信息可以预先与对应的标识保存到服务器中,服务器根据标识获取相应的地址信息,或者,服务器接收PC和/或手机发送的请求消息,从请求消息中获取第一地址信息和/或第二地址信息。
[0069]S212:PC和手机米用用户数据报协议(User Datagram Protocol,UDP)打洞的方式
建立直接无线连接。
[0070]PC和手机收到对方的地址信息后,尝试重复向这个地址发送UDP数据包,如果对方收到数据包,就表示连接成功,这个过程中在向另一端发送数据包后,路由器就会允许另一端向路由器上这个所经的端口发包,称为UDP打洞。
[0071]S213:PC和手机通过该直接无线连接,传输数据包。
[0072]S214:服务器中转PC和手机之间传输的数据包。
[0073]本实施例通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。本实施例可以不需要服务器协助建立直接无线连接,或者由服务器协助建立直接无线连接,可以提高适用范围。
[0074]图3是本发明另一实施例提出的通信方法的流程示意图,本实施例以PC和手机建立连接为例。
[0075]S301:PC检测第一路由器是否支持通用即插即用(Universal Plug and Play,UPNP)协议,若是,执行S302,否则,执行S307。
[0076]其中,PC可以是在确定自己没有使用公网IP地址时,检测第一路由器是否支持UPNP协议。
[0077]PC可以发送简单服务发现协议(Simple Service Discovery Protocol, SSDP)组播包,第一路由器接收到该SSDP组播包后回复,回复中包含是否支持UPNP协议。
[0078]S302:PC在第一路由器上增加端口映射,将PC的通信端口映射到第一路由器上的指定的固定端口。
[0079]具体的,PC可以向第一路由器发送超文本传输协议(Hypertext transferprotocol, HTTP)请求,第一路由器根据该HTTP请求向PC返回可扩展标记(ExtensibleMarkup Language, XML)描述,XML描述中包含设备描述,PC解析设备描述获取控制端口映射的简单对象访问协议(Simple Object Access Protocol, SOAP)描述,根据该SOAP描述发送SOAP请求增加一个端口映射,第一路由器将端口映射到指定的固定端口上。
[0080]S303:PC在第一路由器上成功完成端口映射,将第一地址信息发送给服务器,第一地址信息是第一路由器的IP地址和映射的端口号。
[0081]S304:服务器将第一地址信息发送给手机。
[0082]S305:手机根据该第一地址信息发起建立与PC的直接无线连接。
[0083]本实施例以发送第一地址信息给手机为例,可选的,服务器也可以将第二地址信息发送给PC,由PC发起建立与手机的直接无线连接,第二地址信息是手机在第二路由器上成功完成端口映射后发送的第二路由器的IP地址和映射的端口号。
[0084]S306:PC和手机通过该直接无线连接,传输数据包。
[0085]可选的,当PC和手机不再通信后,PC和/或手机可以向相应的路由器发送SOAP请求以删除之前创建的端口映射。
[0086]S307:结束。
[0087]其中,该结束是指不再进行端口映射流程,此时还可以请求由服务器协助建立直接无线连接等。
[0088]本实施例通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。本实施例通过端口映射的方式协助建立直接无线连接,可以实现建立方式的多样性。
[0089]图4是本发明另一实施例提出的通信装置的结构示意图,该装置40包括判断模块41和建立模块42。
[0090]判断模块41用于判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中;
[0091]其中,电脑可以是指个人电脑(Personal Computer, PC),移动设备可以是手机或平板电脑等。
[0092]电脑可以采用公网IP地址上网;或者,电脑也可以通过路由器上网,此时电脑使用的不是公网IP地址。
[0093]移动设备可以通过W1-Fi或者移动网络上网,这两种情况下移动设备都相当于使用路由器上网。
[0094]直接无线连接是指建立连接后通信时不需要服务器中转的连接,对于包括路由器的场景,电脑和移动设备之间的直接无线连接包括相应的路由器。例如,电脑使用公网IP地址时,移动设备端的路由器称为第二路由器,电脑与移动设备之间的直接无线连接是:电脑-第二路由器-移动设备。又例如,电脑通过第一路由器上网时,电脑与移动设备之间的直接无线连接是:电脑-第一路由器-第二路由器-移动设备。
[0095]电脑与移动设备之间的直接无线连接可以是指不需要服务器协助就能够建立的直接连接,或者,也可以是指需要服务器协助才能建立的直接连接。
[0096]建立模块42用于如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0097]一个实施例中,参见图5,判断模块41可以包括第一单元411和第二单元412,第一单元411用于判断所述电脑是否使用公网IP地址;第二单元412用于所述第一单元判断出所述电脑是否使用公网IP地址时,判断出能够建立电脑与移动设备之间的直接无线连接。
[0098]相应的,所述建立模块42具体用于:将所述电脑的IP地址和端口号发送给所述移动设备,以使所述移动设备根据所述电脑的IP地址和端口号发起建立所述直接无线连接。
[0099]一个实施例中,判断模块41还包括第三单元413和第四单元414,第三单元413用于如果所述电脑没有使用公网IP地址,判断第一路由器和第二路由器是否至少有一个满足预设条件;第四单元414用于在第一路由器和第二路由器是否至少有一个满足预设条件时,判断出能够建立电脑与移动设备之间的直接无线连接,其中,所述预设条件包括:路由器的NAT类型是完全圆锥型NAT,或者,电脑或移动设备在路由器成功完成端口映射;所述第一路由器是所述电脑所在子网的路由器,所述第二路由器是所述移动设备所在子网的路由器。
[0100]相应的,所述建立模块42具体用于:将满足预设条件的路由器的IP地址和端口号发送给另一端,以便所述另一端根据所述IP地址和端口号发起建立所述直接无线连接,其中,当成功完成端口映射后,所述端口号是映射的端口号。
[0101]一个实施例中,判断模块41还包括第五单元415,第五单元415用于如果所述电脑没有使用公网IP地址,且所述第一路由器和第二路由器均不满足所述预设条件,判断所述第一路由器的NAT类型和所述第二路由器的NAT类型是否属于如下情况,如果不属于,判断出能够建立电脑与移动设备之间的直接无线连接:两个都是对称NAT ;或者,一个是对称NAT,且另一个是端口受限圆锥型NAT。
[0102]相应的,所述建立模块42具体用于:通过服务器同时将第一地址信息发送给移动设备,将第二地址信息发送给电脑,所述第一地址信息是所述第一路由器的IP地址和为电脑临时分配的端口号,所述第二地址信息是所述第二路由器的IP地址和为移动设备临时分配的端口号,以使所述移动设备和所述电脑根据对方的地址信息采用UDP打洞的方式建立所述直接无线连接。
[0103]该装置是执行上述方法的装置,具体内容可以参见方法中的描述,在此不再赘述。
[0104]本实施例通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0105]本发明实施例还提供了一种通信装置,该通信装置包括壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为通信装置的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
[0106]SlT:判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中。
[0107]其中,电脑可以是指个人电脑(Personal Computer, PC),移动设备可以是手机或平板电脑等。
[0108]电脑可以采用公网IP地址上网;或者,电脑也可以通过路由器上网,此时电脑使用的不是公网IP地址。
[0109]移动设备可以通过W1-Fi或者移动网络上网,这两种情况下移动设备都相当于使用路由器上网。
[0110]直接无线连接是指建立连接后通信时不需要服务器中转的连接,对于包括路由器的场景,电脑和移动设备之间的直接无线连接包括相应的路由器。例如,电脑使用公网IP地址时,移动设备端的路由器称为第二路由器,电脑与移动设备之间的直接无线连接是:电脑-第二路由器-移动设备。又例如,电脑通过第一路由器上网时,电脑与移动设备之间的直接无线连接是:电脑-第一路由器-第二路由器-移动设备。
[0111]电脑与移动设备之间的直接无线连接可以是指不需要服务器协助就能够建立的直接连接,或者,也可以是指需要服务器协助才能建立的直接连接。
[0112]具体的,不需要服务器协助能够建立直接连接的场景包括:
[0113]电脑使用公网IP地址;或者,
[0114]第一路由器和第二路由器中至少一个满足预设条件,预设条件包括:
[0115]路由器的NAT类型是完全圆锥型NAT (full cone NAT);或者,
[0116]电脑或移动设备在路由器成功完成端口映射。
[0117]需要服务器协助能够建立直接连接的场景包括:
[0118]第一路由器和第二路由器的NAT类型是除下述情况之外的情况:两者都是对称NAT (Symmetric NAT);或者,一个是对称NAT,另一个是端口受限圆锥型NAT(Port-Restricted cone NAT)。
[0119]其中,NAT类型可以分为完全圆锥型NAT(full cone NAT)、端口受限圆锥型NAT (Address Restricted cone NAT)、端 口受限圆维型 NAT (Port-Restricted cone NAT)和对称 NAT (Symmetric NAT)。
[0120]另外,本发明实施例的连接不限于传输控制协议(Transmission ControlProtocol, TCP)连接,而是当一方发出数据另一方可以收到即为连接成功。
[0121]S12’:如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
[0122]其中,在不需要服务器协助的场景下,服务器可以将一方的地址信息发送给另一方,在需要服务器协助的场景下,服务器同时将两方的地址信息分别发送给另一方。地址信息可以包括IP地址和端口号。
[0123]具体的,当电脑和使用公网IP地址时,可以将使用电脑的IP地址和端口号发送给移动设备,移动设备接收到该IP地址和端口号后,根据该IP地址和端口号发起建立与电脑的直接无线连接。
[0124]当第一路由器和第二路由器中至少一个的NAT类型是完全圆锥型NAT时,服务器可以将是完全圆锥型NAT的路由器的IP地址和临时分配的端口号发送给另一方。例如,第一路由器的NAT类型是完全圆锥型NAT时,服务器可以将第一路由器的IP地址和临时分配的端口号通过第二路由器发送给移动设备,以便移动设备根据该IP地址和端口号发起建立与电脑的直接无线连接。其中,由于路由器的端口数量有限,在通信时通常会采用端口复用的方式为内网设备分配端口号,因此,上述第一路由器临时分配的端口号是指当前分配给电脑的端口号。
[0125]当第一路由器和第二路由器中至少一个成功完成端口映射时,服务器可以将成功完成端口映射的路由器的IP地址和映射的端口号发送给另一方。例如,第一路由器成功完成端口映射时,可以将第一路由器的IP地址和映射的端口号通过第二路由器发送给移动设备,以便移动设备根据该IP地址和端口号发起建立与电脑的直接连接。其中,与临时分配的端口号不同的是,端口映射时可以将某个指定的端口固定分配给内网设备,因此,上述第一路由器映射的端口号是指固定分配给电脑的端口号。
[0126]另外,需要说明的是,当两个路由器都满足预设条件时,可以任选一个地址信息发
给另一端。
[0127]在需要服务器协助时,服务器可以同时向两端发送另一端的地址信息,以使电脑和移动设备接收到对端的地址信息后,采用UDP打洞的方式建立电脑与移动设备之间的直接连接。
[0128]本实施例通过建立电脑和移动设备之间的直接无线连接,并通过该直接无线连接传输数据包,可以不需要服务器中转数据,可以节省服务器的带宽资源。
[0129]需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0130]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0131]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0132]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0133]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0134]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0135]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0136]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种通信方法,其特征在于,包括: 判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中; 如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
2.根据权利要求1所述的方法,其特征在于,所述判断是否能够建立电脑与移动设备之间的直接无线连接,包括: 判断所述电脑是否使用公网IP地址,若是,判断出能够建立电脑与移动设备之间的直接无线连接。
3.根据权利要求2所述的方法,其特征在于,所述建立所述直接无线连接,包括: 将所述电脑的IP地址和端口号发送给所述移动设备,以使所述移动设备根据所述电脑的IP地址和端口号发起建立所述直接无线连接。
4.根据权利要求2所述的方法,其特征在于,所述判断是否能够建立电脑与移动设备之间的直接无线连接,还包括: 如果所述电脑没有使用公网IP地址,判断第一路由器和第二路由器是否至少有一个满足预设条件,若是,判断出能够建立电脑与移动设备之间的直接无线连接,其中,所述预设条件包括:路由器的 NAT类型是完全圆锥型NAT,或者,电脑或移动设备在路由器成功完成端口映射; 所述第一路由器是所述电脑所在子网的路由器,所述第二路由器是所述移动设备所在子网的路由器。
5.根据权利要求4所述的方法,其特征在于,所述建立所述直接无线连接,包括: 将满足预设条件的路由器的IP地址和端口号发送给另一端,以便所述另一端根据所述IP地址和端口号发起建立所述直接无线连接,其中,当成功完成端口映射后,所述端口号是映射的端口号。
6.根据权利要求4所述的方法,其特征在于,所述判断是否能够建立电脑与移动设备之间的直接无线连接,还包括: 如果所述电脑没有使用公网IP地址,且所述第一路由器和第二路由器均不满足所述预设条件,判断所述第一路由器的NAT类型和所述第二路由器的NAT类型是否属于如下情况,如果不属于,判断出能够建立电脑与移动设备之间的直接无线连接:两个都是对称NAT ;或者,一个是对称NAT,且另一个是端口受限圆锥型NAT。
7.根据权利要求6所述的方法,其特征在于,所述建立所述直接无线连接,包括: 通过服务器同时将第一地址信息发送给移动设备,将第二地址信息发送给电脑,所述第一地址信息是所述第一路由器的IP地址和为电脑临时分配的端口号,所述第二地址信息是所述第二路由器的IP地址和为移动设备临时分配的端口号,以使所述移动设备和所述电脑根据对方的地址信息采用UDP打洞的方式建立所述直接无线连接。
8.一种通信装置,其特征在于,包括: 判断模块,用于判断是否能够建立电脑与移动设备之间的直接无线连接,所述电脑和所述移动设备不在同一个子网中; 建立模块,用于如果能够建立所述直接无线连接,建立所述直接无线连接,以便通过所述直接无线连接传输所述电脑与移动设备之间的数据包。
9.根据权利要求8所述的装置,其特征在于,所述判断模块包括: 第一单元,用于判断所述电脑是否使用公网IP地址; 第二单元,用于所述第一单元判断出所述电脑是否使用公网IP地址时,判断出能够建立电脑与移动设备之间的直接无线连接。
10.根据权利要求9所述的装置,其特征在于,所述建立模块具体用于: 将所述电脑的IP地址和端口号发送给所述移动设备,以使所述移动设备根据所述电脑的IP地址和端口号发起建立所述直接无线连接。
11.根据权利要求9所述的装置,其特征在于,所述判断模块还包括: 第三单元,用于如果所述电脑没有使用公网IP地址,判断第一路由器和第二路由器是否至少有一个满足预设条件; 第四单元,用于在第一路由器和第二路由器是否至少有一个满足预设条件时,判断出能够建立电脑与移动设备之间的直接无线连接,其中,所述预设条件包括:路由器的NAT类型是完全圆锥型NAT,或者,电脑或移动设备在路由器成功完成端口映射;所述第一路由器是所述电脑所在子网的路由器,所述第二路由器是所述移动设备所在子网的路由器。
12.根据权利要 求11所述的装置,其特征在于,所述建立模块具体用于: 将满足预设条件的路由器的IP地址和端口号发送给另一端,以便所述另一端根据所述IP地址和端口号发起建立所述直接无线连接,其中,当成功完成端口映射后,所述端口号是映射的端口号。
13.根据权利要求11所述的装置,其特征在于,所述判断模块还包括: 第五单元,用于如果所述电脑没有使用公网IP地址,且所述第一路由器和第二路由器均不满足所述预设条件,判断所述第一路由器的NAT类型和所述第二路由器的NAT类型是否属于如下情况,如果不属于,判断出能够建立电脑与移动设备之间的直接无线连接:两个都是对称NAT ;或者,一个是对称NAT,且另一个是端口受限圆锥型NAT。
14.根据权利要求13所述的装置,其特征在于,所述建立模块具体用于: 通过服务器同时将第一地址信息发送给移动设备,将第二地址信息发送给电脑,所述第一地址信息是所述第一路由器的IP地址和为电脑临时分配的端口号,所述第二地址信息是所述第二路由器的IP地址和为移动设备临时分配的端口号,以使所述移动设备和所述电脑根据对方的地址信息采用UDP打洞的方式建立所述直接无线连接。
【文档编号】H04L29/12GK104010037SQ201410241052
【公开日】2014年8月27日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】蒋冯兵, 刘硕 申请人:广州金山网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1