cocos2dx 接入 smart fox server 遇到的错误

一、移植到安卓的时候报错 Error:(73, 13) error: 'future' is not a member of 'boost'

错误发生在文件 CryptoInitializer::RunHelper 中

因为boost::future 是由宏定义的 如下:

#if defined BOOST_THREAD_PROVIDES_FUTURE
#define BOOST_THREAD_FUTURE future
#else
#define BOOST_THREAD_FUTURE unique_future
#endif

 

所以需要在程序中定义宏 BOOST_THREAD_PROVIDES_FUTURE,

1、在程序的源文件中加入宏定义

2、也可以在xcode 中加入定义

 2.1. ios 在buildsetting的preprocess macros中加入BOOST_THREAD_PROVIDES_FUTURE

 

二、ios 真机报socket 错误 模拟没问题,android 真机也没问题

      在发起socket 连接的时候报错

      socket 错误码65

 

 原因:没有开启权限

解决:需要两步

1、加入权限

打开Info.plist 
添加 :  
App Transport Security Settings

Allow Arbitrary Loads

更改为YES 
这里写图片描述

2、因为socket直接调用不会弹出权限,所以需要先连接一个http请求,在RootViewController.m 文件,找到初始化方法,加入如下代码

 

//1、创建一个URL

     //协议头+主机地址+接口名称+?+参数1&参数2&参数3

     //这里的话是我自己使用.Net开发的一个本地后台接口 http://192.168.1.0:8080/login?username=LitterL&pwd=123

     NSURL *url = [NSURL URLWithString:@"http://www.apple.com"];

     

     //2、创建请求(Request)对象(默认为GET请求);

     NSURLRequest *requst = [[NSURLRequest alloc]initWithURL:url];

     

     //3、发送请求

     /*

      第一个参数:请求对象

      第二个参数:响应头

      第三个参数:错误信息

      返回值:NSData类型,响应体信息

      */

     NSError *error = nil;

     NSURLResponse *response = nil;

     //发送同步请求(sendSynchronousRequest)

     NSData *data = [NSURLConnection sendSynchronousRequest:requst returningResponse:&response error:&error];

     //如果没有错误就执行

     if (!error) {

         //打印的服务端返回的信息以及错误信息

         NSLog(@"%@",[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]);

         NSLog(@"%@",error);

     }

你可能感兴趣的:(cocos2dx,smart,fox,server)