Unity对ipv6的支持 (针对IOS上架要求)
首页 > 移动开发 > Unity    作者:StanWind   2016年12月23日 3:26 星期五   热度:5989°   百度已收录  
时间:2016-12-23 3:26   热度:5989° 

解决这个问题的思路就是先判断网络环境 然后根据网络环境执行不同的连接代码

Unity 5.3.x的上层API已经对ipv6支持了 例如WWW类 不需要改动任何代码 就能够支持ipv6

但是官方说一定要用域名 

然后就是socket对ipv6的支持了 

例如使用socket类来创建一个ipv4和ipv6的连接是不同的

socket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);//V6

socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//V4

所以我们就需要一段代码来检测当前网络环境


IPAddress[] address=Dns.GetHostAddresses("www.stanwind.com"); // 用于解析域名的ip 这个API就是unity新版本对ipv6的支持


想知道当前网络环境是不是只有ipv6

直接拿出第一个地址  address[0].AddressFamily==AddressFamily.InterNetworkV6 

来判断

如果是 就用ipv6的socket连接方式

否则用ipv4

然后执行  socket.Connect(address, 8001);

即可连接



二维码加载中...
本文作者:StanWind      文章标题: Unity对ipv6的支持 (针对IOS上架要求)
本文地址:https://www.stanwind.com/post/45
版权声明:若无注明,本文皆为“Make it Better”原创,转载请保留文章出处。

返回顶部    首页    手机版本    后花园  
版权所有:Make it Better    站长: StanWind    赣ICP备17014296号