Make it Better
Unity对ipv6的支持 (针对IOS上架要求)
2016-12-23 StanWind


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



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);



即可连接









发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容