Unity对ipv6的支持 (针对IOS上架要求)
解决这个问题的思路就是先判断网络环境 然后根据网络环境执行不同的连接代码
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”原创,转载请保留文章出处。
本文地址:https://www.stanwind.com/post/45
版权声明:若无注明,本文皆为“Make it Better”原创,转载请保留文章出处。
相关文章