建立数据连接的方法及装置的制造方法_3

文档序号:9730274阅读:来源:国知局
也设有三个端口,分别为第一端口 A ’、第二端口 B,和第三端口 C ’,终端通过发送三个建立连接请求,可以通过上述三个端口与智能设备建立三个连接。
[0097]另外,为了避免浪费,可以终端在发送任一建立连接请求之前,可以检测自身与该智能设备是否已建立了相同类型的数据连接,如果已建立,则可复用该数据连接。也即是,该方法还包括:终端在发送建立连接请求之前,获取待发送数据包的类型,并检测UDTClient模块是否已经与智能设备之间建立了用于发送该类型数据包的数据连接,若确定未建立数据连接,则向智能设备发送建立连接请求。反之,复用该类型数据包已建立的数据连接。
[0098]例如,终端想要发送数据包A,该数据包A属于第一类数据包时,若终端检测UDTClient模块与智能设备建立了用于传输第一类型数据包的数据连接,则终端复用该数据连接向智能设备发送数据包A。
[0099]在步骤204中,智能设备接收终端发送的建立连接请求。
[0100]对于智能设备,无论终端发送几个建立连接请求,智能设备均以唯一的处理方式来处理所接收到的建立连接请求。具体地,在智能设备的UDT模块中,设置有一个监听端口,例如,该监听端口的端口号为8080。该监听端口用于接收终端发送的建立连接请求。当终端想要与智能设备建立连接时,向该监听端口发送建立连接请求,智能设备通过该监听端口,接收终端发送的建立连接请求。
[0101]在步骤205中,智能设备检测本端是否具备空闲端口,如果是,则执行步骤206。
[0102]智能设备上具有多个端口,该多个端口可能处于不同的使用状态,如已经被占用或者空闲,因此,需要检测是否具备空闲端口,以确定是否能成功建立数据连接。请参考图2C,智能设备设置有三个端口,分别为第一端口 A、第二端口 B和第三端口 C。若检测到智能设备的第一端口 A处于空闲状态,则执行后续步骤206,以通过该第一端口 A与终端建立第一数据连接。
[0103]在步骤206中,智能设备检测到本端具备空闲端口时,通过所述空闲端口与终端建立第一数据连接。
[0104]上述终端与智能设备之间仅建立了一个数据连接,在一种可能的实现方式中,智能设备与终端之间还可以建立第二数据连接和第三数据连接。具体地,当终端发送的多个建立连接请求,建立第二数据连接和第三数据连接具体包括如下任一种可能的实现方式:
[0105]在第一种可能的实现方式中,若终端与智能设备已经建立了第一数据连接,当终端再次发送建立连接请求时,智能设备检测处于空闲状态的端口,并将该端口与终端建立第二数据连接,相应地,终端通过另外一个端口与智能设备建立连接。
[0106]例如,若终端已经通过第一端口A’与智能设备的第一端口A建立了第一数据连接,当智能设备再次接收到终端发送的建立连接请求时,如果检测到第二端口 B处于空闲状态,则通过第二端口 B与终端的第二端口 B ’建立第二数据连接。当然,若第三端口 C也处于空闲状态,智能设备可以选择两者中的任一端口与终端建立第二数据连接。
[0107]在第二种可能的实现方式中,若终端与智能设备已经建立了第一连接,并且已经建立了第二连接。当终端再次向智能设备发送建立连接请求时,智能设备检测处于空闲状态的端口,并通过该端口与终端之间建立第三数据连接,相应地,终端也通过不同的端口与智能设备建立连接。
[0108]例如,若终端已经通过第一端口A’与智能设备的第一端口A建立了第一数据连接,且也通过第二端口B’与智能设备的第二端口B建立了第二数据连接,当智能设备再次接收到终端发送的建立连接请求时,如果检测到第三端口 C处于空闲状态,则通过第三端口 C与终端的第三端口 C,建立第三数据连接。
[0109]在步骤207中,终端通过第一数据连接向智能设备发送数据包。
[0110]终端与智能设备之间建立第一数据连接后,即可通过该第一数据连接请求,向智能设备发送数据包。
[0111]在一种可能的实现方式中,终端还可以根据所要发送的数据包的类型不同,选择不同的数据连接发送不同类型的数据包。例如,终端可以通过第一数据连接发送第一类数据包,通过第二数据连接发送第二类数据包,并通过第三数据连接发送第三类数据包。当然,终端可以自由选择通过哪个数据连接发送哪一类的数据包,例如,也可以通过第二数据连接发送第一类数据包。但是,通常情况下,同一连接只用于传输同类型的数据包,即,若终端选择通过第一数据连接发送第一类数据包,则该第一数据连接只用于传输第一类数据包。
[0112]在步骤208中,智能设备接收终端发送的数据包,该数据包携带目标应用标识以及传输数据。
[0113]智能设备通过与终端建立的不同数据连接,接收终端发送的不同类型的数据包。具体地,智能设备根据终端选择的数据连接,通过不同的端口接收不同类型的数据包。例如,若终端选择通过第一数据连接发送第一类数据包,则智能设备通过端口 A来接收第一类型数据包。
[0114]请参考图2D,数据包通常由包头和传输数据两部分组成,包头中可以携带有目标应用标识。目标应用标识用于指示智能设备将传输数据发送给智能设备对应的应用,其长度为2B。传输数据是指实际要传输的内容,传输数据可以是音频数据或视频数据等多媒体数据,也可以是控制指令等,例如,该传输数据可以用于控制智能设备当前显示的游戏画面中的虚拟对象。
[0115]另外,请再参考图2D,包头中还可以包括有包头标识、协议版本、起始包标识、保留位、包头长度、数据长度以及源应用标识。
[0116]其中,包头标识用于定位数据包,即通过包头标识可以确定一个数据包的起始位置,例如,包头标识设为M。
[0117]其中,协议版本用于表示传输该数据包所使用的UDT协议的版本,其长度为4bit,占用包头中的第4bit至第7bit。
[0118]其中,对于起始包标识,根据该起始包标识,可以确定一个完整的资源,具体地,当一个资源较大时,需要将资源划分为N个数据包发送,此时,可以将起始包中的起始包标识设置为1,后续的N-1个数据包中起始包标识设置为0,在接收过程中,当再次接收到起始包标识设置为1的第N+1个数据包时,可以确定前N个数据包属于一个资源,从而可以确定一个完整的资源。该起始包标识仅使用包头中的第3b i t。
[0119]其中,保留位可以用于扩展数据包,其长度为3bit,占用包头的第Obit至第2bit。
[0120]其中,包头长度用于表示包头的总长度,以Byte为单位,例如,本实施例中的包头长度为5Byte,即在本数据包中,第OByte至第4Byte为包头。
[0121]其中,数据长度用于表示传输数据的总长度,例如,在本实施例中为4Byte。
[0122]其中,源应用标识用于标识该数据包由终端中的哪个应用发送,该源应用标识为16位的整形数,其长度为2Byte。
[0123]当然,包头还可以包括其它组合形式,本公开对此不作限定。
[0124]在步骤209中,智能设备提取目标应用标识。
[0125]当接收到终端发送的数据包时,请参考图2D,智能设备从数据包的包头中提取目标应用标识。
[0126]在步骤210中,根据目标应用标识以及预设回调函数对应表,智能设备确定目标应用对应的目标回调函数。
[0127]智能设备提取目标应用标识后,以该目标应用标识为索引,从数据库中存储的预设回调函数对应表中确定目标应用对应的目标回调函数。其中,目标回调函数用于将传输数据发送至目标应用对应的数据存储地址。
[0128]在一种可能的实现方式中,若智能设备未查询到该目标应用标识对应的目标回调函数,则将所接收到的数据包丢弃,并且,向终端返回错误消息,以使终端接收到错误消息后,执行对应的操作,如重新发送数据包等。如此,在数据包接收不成功的情况下,及时丢弃该数据包,避免影响对后续所接收的数据包的处理进度,并且,通过返回错误消息,可以使得终端侧可以及时采取应对措施。
[0129]在步骤211中,智能设备运行目标回调函数,将传输数据发送给目标应用。
[0130]确定目标回调函数后,运行该目
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1