Quick-Cocos2dx 支持 ipv6解决方案(cocos2dx-lua同理)

原链接:http://forum.cocos.com/t/quick-ipv6-cocos-lua/37105

如果用到了curl(也就是network.createHTTPRequest),按照官方教程升级curl就行了

如果用到了websocket 也按照官方出的教程升级下websocket就行了。

如果用到了luasocket。先看看版本吧,具体哪个版本以上忘记了。可以检测luasocket代码是否有tcp6()这个函数。

如果有说明是支持的。然后在SocketTCP的connect里面加上判断代码:

local isipv6_only = false

local addrinfo, err = socket.dns.getaddrinfo(self.host)

for i,v in ipairs(addrinfo) do

if v.family == "inet6" then

isipv6_only = true;

break

end

end

print("isipv6_only", isipv6_only)

-- dump(addrinfo)

if isipv6_only then

self.tcp = socket.tcp6()

else

self.tcp = socket.tcp()

end

OK了 很简单。升级过程中可能会出一些错误。一般都是文件没拷贝全之类的,逐一解决就行了。

最后切记只能使用域名。不能使用ipv4的或者ipv6的地址。而且服务器完全无需改动。

PS.

升级最好直接下载cocos3.11。然后找到相关模块完整拷贝。比如websocket,external/websockets

完整拷贝之后。还需要替换新的头文件。位置在cocos/network/WebSocket.cpp cocos/network/WebSocket.h

如果之前版本太低,可能会报错EVENT_RESET找不到。照着最新版的加上去就行了。

测试没有发现问题。我自己的项目今早通过审核了。用到了curl跟luasocket。

作者:自由快挂

链接:http://www.jianshu.com/p/63a6a9194510

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前几日更新我们app,接连被打回来几次,后来苹果客服来电话说从六月一号起,所有审核的app都要求支持IPV6。根据...
    曾令伟阅读 5,614评论 0 1
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,370评论 30 472
  • 今天我将为大家介绍常用的几种消息推送:JMS,MQTT,XMPP,WebSocket,AMQP,友盟,环信。 首先...
    马小悦阅读 6,551评论 0 7
  • 雕刻工艺是传统文化中的一大瑰宝。微雕更以其独特的艺术表现形式于雕刻艺术之林中独树一帜。 今天观佳艺术带给大家欣赏的...
    观佳艺术阅读 3,499评论 0 0
  • 团队收益,不停的加血,让敌人痛不欲生! 直接中推,制造兵线压力! 带加血技能! 一技能加血,二技能控制,大招加血!...
    乌龟的慢生活阅读 1,287评论 0 0