加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[寒江孤叶丶的Cocos2d-x之旅_34]ODSocket(BSDSocket)如何在切换

发布时间:2020-12-14 14:15:23 所属栏目:百科 来源:网络整理
导读:原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列] 博客地址:http://blog.csdn.net/qq446569365 用于监听IOS网络状态切换(WIFI和移动蜂窝网络) 有什么作用 在Socket网络游戏中,经常会用到BSDSocket。用户切换网络状态时,Socket链

原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列]

博客地址:http://blog.csdn.net/qq446569365

用于监听IOS网络状态切换(WIFI和移动蜂窝网络)

有什么作用

在Socket网络游戏中,经常会用到BSDSocket。用户切换网络状态时,Socket链接会断开,如果通过Receive的返回值来判断网络是否断开,需要等待很长时间(4-20s)
这个时候就需要监听IOS网络状态切换,当发现用户切换网络状态时,直接重连Socket。

如何在Cocos中使用

首先将NetworkInfo.h 和 NetworkInfo.m导入项目
NetworkInfo的Github地址

然后修改AppController.mm文件
首先引用刚刚导入的两个文件#import "NetworkInfo.h"
接下来在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions函数中加入如下代码(注册监听)

代码如下

//开启网络状况的监听  
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
NetworkInfo* hostReach = [NetworkInfo reachabilityWithHostName:@"www.baidu.com"] ;//网址可以修改一个连接速度较快的
[hostReach startNotifier];  //开始监听,会启动一个run loop

并且在文件中中加入网络状态切换的回调方法

代码如下

//网络链接改变时会调用的方法  
-(void)reachabilityChanged:(NSNotification *)note
{
    NetworkInfo *currReach = [note object];
    NSParameterAssert([currReach isKindOfClass:[NetworkInfo class]]);
    //TODO:重连网络
}

最后在项目中加入库文件SystemConfiguration.framework

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读