iOS 即时通讯Socket IPV6 被拒

  目前在开发一款游戏平台类App 其中的通许是使用scket来写的 使用的GCDSocket 完成后提交审核 结果被拒, 一开始以为是短连接的原因 然后修改提交 结果再次被拒 后查找结果是socket长连接的原因 scoket默认是使用IVP4的 而现在苹果强制使用IPV4 所以审核那边的测试环境都是IPV6的这样就导致了审核测试没有办法正常的使用功能 所以在做scoket链接的时候我们要先检查当前网络环境 然后根据环境做ip的转换 也不废话了 直接上代码

NSError *error = nil;

NSError *addresseError = nil;

NSArray *addresseArray = [GCDAsyncSocket lookupHost:self.ip port:self.port error:&addresseError];

if (addresseError) {

DDLogVerbose(@"转换失败");

}

NSString *ipv6Addr = @"";

for (NSData *data in addresseArray) {

if ([GCDAsyncSocket isIPv6Address:data]) {

ipv6Addr = [GCDAsyncSocket hostFromAddress:data];

}

}

if (ipv6Addr.length > 0) {

self.ip = ipv6Addr;

}

BOOL result = [self.clinetSocket connectToHost:self.ip onPort:self.port withTimeout:-1 error:&error];

第一次写 写的不好大家不要在意啊 以后会慢慢的努力的

你可能感兴趣的:(iOS 即时通讯Socket IPV6 被拒)