最近苹果升级的IOS10,所以那边网络环境变成IPV6,如果你的程序不兼容IPV6,苹果的程序会以这个不兼容的原因驳回审核。
那么如何让自己的程序兼容这个?方法其实C#本来已经提供给你的,而且很简单,(个人只懂C#,所以其他语言没研究过)不过前提就是服务器必须先申请域名,这个这里不作详解。
socket网络的知识这里也不说。不过我们修改的就是socket的API的某个字段,你没听错就是这样简单!
AddressFamily.InterNetwork
改成
AddressFamily.InterNetworkV6
就是这么简单 ,加上V6,不过我还是把完整的代码放上来,以便参考
protected string _url = "XXXX.com"; protected bool CreateSocket() { try { IPAddress[] address = Dns.GetHostAddresses(_url);//判断域名使用是ipv6还是ipv4 if (address.Length != 0) { _isIpv6 = address[0].AddressFamily == AddressFamily.InterNetworkV6;//这里作一个判定,为了后面接收服务器的IPV4是否转换IPV6 这里没需要转换的话可以不写,只是一个标志位 _socket = new Socket(address[0].AddressFamily, SocketType.Stream, ProtocolType.Tcp); } else { _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); } _socket.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,3000); return true; } catch { this.OnSenderException(); return false; } }
然自己搭建IPV6环境自己测试!