1.一种链接弹幕的方法,其特征在于,包括:定义IP和端口的数据结构,所述数据结构中包含IP数据和端口数据;其中,具体定义一个ip和port的结构,strcunt ipportitem{string ip;int port;}结构中包含IP数据和端口数据;
根据所述IP数据和所述端口数据确定弹幕服务器域名;
在所述IP数据中选择支持所述弹幕服务器负载的均衡的IP;
根据所述弹幕服务器域名解析IP,所述IP由所述弹幕服务器域名转换得到;
生成一个容器对象,所述容器对象用于存储获取到的多个IP;
对获取到的多个IP进行随机和打乱,其中,依次的从容器对象中挑选3个IP来进行尝试链接,每个IP设置4秒的超时,如果3个IP中有一个连上了,则马上断开其他2个ip的链接;
根据随机和打乱后的IP链接弹幕服务器。
2.根据权利要求1所述的方法,其特征在于,所述根据所述弹幕服务器域名解析IP,所述IP由所述弹幕服务器域名转换得到包括:定义变量struct addrinfo结构;
调用函数getaddrinfo将所述弹幕服务器域名转换成IP;
将转换成的IP存储到所述struct addrinfo结构中;
将所述转换成的IP和弹幕服务器下发的IP一起进行随机打乱。
3.根据权利要求2所述的方法,其特征在于,所述定义变量struct addrinfo结构包括:将变量hints清空,得到memset(&hints,0,sizeof(hints));
将所述hints赋值为SOCK_STREAM,得到hints.ai_socktype=SOCK_STREAM。
4.根据权利要求2所述的方法,其特征在于,所述调用函数getaddrinfo将所述弹幕服务器域名转换成IP包括:
调用系统函数getaddrinfo,得到getaddrinfo(host_name,NULL,&hints,&result),其中,所述host_name为弹幕服务器域名,所述result用于存储转换成的IP。
5.根据权利要求1所述的方法,其特征在于,所述生成一个容器对象,所述容器对象用于存储获取到的多个IP包括:
生成一个item,并对所述item进行赋值,得到item.ip=ip;item.port=port;
vecip.push_back(item);
调用容器的push_back函数则将ip存储到了容器中,容器中包含ipportitemitem1;
item1.ip=119.23.45.6;item1.port=4002;vecip.push_back(item1);ipportitem item2;item2.ip=118.34.32.7;item2.port=4002;vecip.push_back(item2);
ipportitem item3;item3.ip=120.45.33.1;item3.port=4008;vecip.push_back(item3);ipportitem item4;item4.ip=121.55.23.8;item4.port=2009;vecip.push_back(item4);ipportitem item5;item5.ip=121.55.23.8;item5.port=4009;
vecip.push_back(item5);},所述ip为地址族,所述port为端口号。
6.根据权利要求1‑5中任一所述的方法,其特征在于,所述对获取到的多个IP进行随机和打乱之后,所述方法包括:
挑选3个IP作为一组链接候选地址;
判断所述一组链接候地址中各个IP的端口号是否存在相同的端口号;
若存在相同的端口号,则将相同的端口号对应的IP替换成端口号不同的IP。
7.根据权利要求6所述的方法,其特征在于,所述根据随机和打乱后的IP链接弹幕服务器包括:
创建网络套接字socket;
调用函数int sockfd=socket(AF_INET,SOCK_STREAM,0)建立与弹幕服务器的连接;
设置地址族和端口号,得到函数servaddr.sin_family=vecip[0].ip,函数servaddr.sin_port=htons(vecip[0].port);
根据所述一组链接候选地址中的IP依次链接弹幕服务器,直至链接成功并得到函数int nRet=connect(sockfd,(struct sockaddr*)&servaddr,sizeof(servaddr))。
8.一种移动终端,其特征在于,包括:
定义单元,用于定义IP和端口的数据结构,所述数据结构中包含IP数据和端口数据;其中,具体定义一个ip和port的结构,strcunt ipportitem{string ip;int port;}结构中包含IP数据和端口数据;
确定单元,用于根据所述IP数据和所述端口数据确定弹幕服务器域名;
选择单元,用于在所述IP数据中选择支持所述弹幕服务器负载的均衡的IP;
解析单元,用于根据所述弹幕服务器域名解析IP,所述IP由所述弹幕服务器域名转换得到;
生成单元,用于生成一个容器对象,所述容器对象用于存储获取到的多个IP;
随机打乱单元,用于对获取到的多个IP进行随机和打乱,其中,依次的从容器对象中挑选3个IP来进行尝试链接,每个IP设置4秒的超时,如果3个IP中有一个连上了,则马上断开其他2个IP的链接;
链接单元,用于根据随机和打乱后的IP链接弹幕服务器。
9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1‑7任意一项所述的方法。