Cocoa touch NSStream SSL连接存在问题

Cocoa touch NSStream SSL连接存在问题,cocoa-touch,macos,ssl,networking,nsstream,Cocoa Touch,Macos,Ssl,Networking,Nsstream,我正在使用具有SSL属性的NSStream进行套接字连接。当我使用本地IP地址(如192.168.1.77)时,它工作正常。但是如果我使用像www.xyz.com这样的服务器(它有SecurityLevelTLSv1),它会显示一个错误 错误代码:-9843,消息:操作无法完成。(NSUnknownErrorDomain错误-9843。) 这是我的密码: -(void) startSocket{ NSURL *website = [NSURL URLWithString:@"www.xy

我正在使用具有SSL属性的NSStream进行套接字连接。当我使用本地IP地址(如192.168.1.77)时,它工作正常。但是如果我使用像www.xyz.com这样的服务器(它有SecurityLevelTLSv1),它会显示一个错误 错误代码:-9843,消息:操作无法完成。(NSUnknownErrorDomain错误-9843。)

这是我的密码:

-(void) startSocket{
    NSURL *website = [NSURL URLWithString:@"www.xyz.com"];
    NSHost *host = [NSHost hostWithName:[website host]];
    if(host) {   
        NSLog(@"Valid host");
        [NSStream getStreamsToHost:host port:443 inputStream:&iStream outputStream:&oStream] ;
        [self openStream];
    }.

-(void)openStream{
NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:1];
    [settings setObject:(NSString *)NSStreamSocketSecurityLevelTLSv1 forKey:(NSString *)kCFStreamSSLLevel];
    [settings setObject:[NSNumber numberWithBool:YES] forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];

    [iStream retain];   
    [iStream setDelegate:self];
    [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
    CFReadStreamSetProperty((CFReadStreamRef)iStream, kCFStreamPropertySSLSettings, (CFTypeRef)settings);
    //[iStream setProperty:NSStreamSocketSecurityLevelTLSv1 forKey:NSStreamSocketSecurityLevelKey];
    [iStream open];

    [oStream retain];
    [oStream setDelegate:self];       
    [oStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];   
    CFWriteStreamSetProperty((CFWriteStreamRef)oStream, kCFStreamPropertySSLSettings, (CFTypeRef)settings);
    //[oStream setProperty:NSStreamSocketSecurityLevelTLSv1 forKey:NSStreamSocketSecurityLevelKey];
    [oStream open];
}
我尝试同时使用NSStream和CFStream。在这两种情况下,我都得到了相同的错误

调用NSSTREATEVENTOPENCOMPLETED和NSSTREATEVENTERROCCURED事件

请帮我做这件事

提前谢谢

Ramesh.p

我解决了这个问题。 下面的代码行完成了所有操作

[settings setObject:@"www.xyz.com" forKey:(NSString *)kCFStreamSSLPeerName];
谢谢, 拉梅什