[寒江孤叶丶的Cocos2d-x之旅_34]ODSocket(BSDSocket)如何在切换网络状态时自动重连
2015-07-17 13:59
766 查看
原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列]
博客地址:http://blog.csdn.net/qq446569365
这个时候就需要监听IOS网络状态切换,当发现用户切换网络状态时,直接重连Socket。
NetworkInfo的Github地址
然后修改AppController.mm文件
首先引用刚刚导入的两个文件#import
接下来在
代码如下
并且在文件中中加入网络状态切换的回调方法
代码如下
最后在项目中加入库文件:
博客地址: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
相关文章推荐
- 网络查看图片
- 【网络流】 ZOJ 2676 Network Wars
- HTTP与HTTPS的区别
- 挨踢(IT)脱口秀--2014年&2015上半年特别“任性”的网络流行语大盘点
- 挨踢(IT)脱口秀--2014年&2015上半年特别“任性”的网络流行语大盘点
- 挨踢(IT)脱口秀--2014年&2015上半年特别“任性”的网络流行语大盘点
- 黑马程序员——网络编程
- TCP 三次握手和四次挥手协议
- windows挂载linux网络文件系统NFS
- 关于网络中的内网IP地址和公网IP地址
- Network:UDP广播消息的测试
- 使用pb的connection对象建立TCP连接
- Dart网络编程-备忘录2.0
- lua https request 调用
- linux socket 阻塞式 TCP
- LINUX select socket编程 TCP
- HttpSession
- GCDAsyncSocket类库,IOS下TCP通讯使用心得
- HTTP报文
- 【光子远程控制】photon UDP/TCP+IOCP+RPC+去中心化设计(降低被爆菊几率)