与流媒体服务器建立快速的tcp连接方式制造技术

技术编号:14995404 阅读:82 留言:0更新日期:2017-04-04 00:59
本发明专利技术公开了一种与流媒体服务器建立快速的tcp连接方式,使流媒体客户端能快速的打开播放器播放实时音视频流(达到秒开的效果)。其基本原理是通过域名解析出多个服务器IP地址(也可是同一IP),同时与这多个IP建立非阻塞tcp连接。设置这多个连接通道离散的超时重连机制,并循环获取多个通道的读写IO触发事件。如果有通道触发即为最快的连接通道,作为后续数据的传输通道。

【技术实现步骤摘要】

本专利技术属于数据传输
,尤其涉及对流媒体客户端播放器打开速度要求很高的系统。
技术介绍
当今互联网+社会,人们通过互联网来观看视频,直播等等已经变得非常频繁和平常了。客户对观看视频的实时性,方便性都比以前要求高了很多。特别是对于实时的音视频,客户端播放器打开速度更是人们非常关注的指标。这样就需要更快的与服务器建立tcp连接,从而更快的传输音视频数据。而一般传统的与互联网流媒体服务器建立tcp连接的流程为:给出的服务器地址,如果是域名,先通过域名解析出ip地址,再用ip地址建立tcp连接。但是,互联网状况千变万化,一旦发生诸如网络拥塞等状况,连接会变慢甚至会超时连接失败,这样会带来较差的用户体验。鉴于此,对于需要实时观看音视频的客户来说,迫切的需要有一种可以与流媒体服务器建立快速的tcp连接方式,来解决现有技术存在的问题和风险。本专利技术就是用来解决此类问题的,利用同时建立多个tcp连接方式,通过本专利的特有技术自动判断最优最快的连接来为后续数据传输服务,从而实现了快速的与流媒体服务器建立快速的tcp连接方式。大幅度的改善了客户体验。
技术实现思路
本专利技术的目的就是提供与流媒体服务器建立快速的tcp连接方式,来解决现有技术中存在的诸多问题。为了实现本专利技术的目的,本专利技术提供了与流媒体服务器建立快速的tcp连接方式,所述方法包括如下步骤:a)步骤1:如果流媒体服务器地址是域名,则通过域名解析函数解析出多个ip,标记为ServerIP1、ServerIP2、ServerIP3……b)步骤2:首先用ServerIP1创建socket1句柄,并设置为非阻塞模式,并与服务器建立连接。如果连接函数返回成功,则跳过后面步骤,直接用ServerIP1创建的socket1句柄传输音视频数据。c)步骤3:与步骤2相同,用ServerIP2创建socket2句柄,设置为非阻塞模式,与服务器建立连接。如果连接函数返回成功,跳过后面步骤,用ServerIP2创建的socket2句柄传输音视频数据。d)步骤4:与步骤2、3相同,用ServerIP3创建socket3句柄,设置为非阻塞模式,与服务器建立连接。如果连接函数返回成功,跳过后面步骤,用ServerIP3创建的socket3句柄传输音视频数据。e)步骤5:创建一个循环,通过判断上述建立的多个socket连接是否有可读事件触发,如果有,则关闭其余的socket连接,返回这个触发可读事件的socket句柄,用这个socket句柄传输音视频数据。如果单次执行没有可读事件触发,则循环判断。在循环判断过程中,设置多个超时时间timeout1、timeout2、timeout3……timeoutTotal。从循环开始计时,如果计时时间超过timeout1,则关闭socket1通道,并通过步骤2重新创建socket1连接,重新计时。如果计时时间超过timeout2,则关闭socket2通道,并通过步骤3重新创建socket2连接,重新计时。如果计时时间超过timeout3,则关闭socket3通道,并通过步骤4重新创建socket3连接,重新计时……如果计时时间超过timeoutTotal,则关闭所有socket通道,返回流媒体服务器连接失败。本专利技术,与现有技术相比,通过同时建立多个tcp连接,并自动判断最优最快的连接来实现快速的的建立传输通道。比起现有技术,更适用复杂的网络架构环境,更能快速的保证数据传输。也可用到其他有tcp快速连接需求的应用范畴,经实验论证(rtmp流媒体传输),该方案连接成功耗时比单通道tcp连接耗时有明显的降低。附图说明图1是本专利技术的方法流程图。图2是本专利技术的实例1示意图。具体实例方式为了使本专利技术的目的,技术方案及有益效果更加清楚明白,以下结合实例,对本专利技术进行进一步详细说明。应当理解为此处所描述的具体实例仅仅用以解释本专利技术,并不用于限制本专利技术的保护范围。如图1所示,本专利技术提供了一种流媒体服务器建立快速的tcp连接方式,所述方法包括如下步骤:步骤S101,通过域名解析函数解析出流媒体服务器的3个ip,标记为ServerIP1、ServerIP2、ServerIP3。步骤S102,首先用ServerIP1创建socket1句柄,并设置为非阻塞模式,并与服务器建立连接。如果连接函数返回成功,则跳过后面步骤,直接用ServerIP1创建的socket1句柄传输音视频数据。步骤S103,与步骤2相同,用ServerIP2创建socket2句柄,设置为非阻塞模式,与服务器建立连接。如果连接函数返回成功,跳过后面步骤,用ServerIP2创建的socket2句柄传输音视频数据。步骤S104,与步骤2、3相同,用ServerIP3创建socket3句柄,设置为非阻塞模式,与服务器建立连接。如果连接函数返回成功,跳过后面步骤,用ServerIP3创建的socket3句柄传输音视频数据。步骤S105,创建一个while循环,通过select机制判断3个socket连接是否有可读事件触发,如果有,则关闭其余两个socket连接,返回这个触发可读事件的socket句柄,用这个socket句柄传输音视频数据。如果单次select执行没有可读事件触发,则循环判断。在循环判断过程中,设置4个超时时间timeout1、timeout2、timeout3、timeoutTotal。从循环开始计时,如果计时时间超过timeout1,则关闭socket1通道,并通过步骤2重新创建socket1连接,重新计时。如果计时时间超过timeout2,则关闭socket2通道,并通过步骤3重新创建socket2连接,重新计时。如果计时时间超过timeout3,则关闭socket3通道,并通过步骤4重新创建socket3连接,重新计时。如果计时时间超过timeoutTotal,则关闭所有socket通道,返回流媒体服务器连接失败。以上所述仅是本专利技术的优选方式,应当指出,不局限于流媒体服务器的tcp连接,在广域的服务器tcp连接上都可以使用本专利技术来快速创建连接。本例中假设同时建立3路连接。现实环境中不局限于具体技术模型(如select模型)和链路数,只要是为提高连接速度设计的多路连接、哪路最先连上即作为数据传输通道的方式都属于本专利技术的保护范围。本例中设置的timeout1、timeout2、timeout3、timeoutTotal虽然经过实验有较可靠的数值设定,但特定的网络环境还本文档来自技高网...

【技术保护点】
权利要求包括如下步骤:现实环境中不局限于具体技术模型(如select模型)和链路数,只要是为提高连接速度设计的多路连接、哪路最先连上即作为数据传输通道的方式都属于本专利技术的保护范围。

【技术特征摘要】
1.权利要求包括如下步骤:
现实环境中不局限于具体技术模型(如select模型)和链路数,只要是为提高连接速度
设计的多路连接、哪路最先连上即作为数据传输通道的方式都属于本发明的保护范围。
2.同样,设置的time...

【专利技术属性】
技术研发人员:张磊
申请(专利权)人:深圳羚羊极速科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1