Problem mit der NSStream SSL-Verbindung

Ich verwende NSStream mit SSL-Eigenschaft für die Socket-Verbindung. Es funktioniert gut, wenn ich die lokale IP-Adresse wie 192.168.1.77 verwende. Wenn ich jedoch einen Server wie www.xyz.com verwende (er hat SecurityLevelTLSv1), wird der folgende Fehlercode angezeigt: -9843, Meldung: Vorgang konnte nicht abgeschlossen werden. (NSUnknownErrorDomain-Fehler -9843.)

Hier ist mein Code:

-(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];
}

Ich habe versucht, sowohl NSStream als auch CFStream zu verwenden. Ich erhalte in beiden Fällen den gleichen Fehler.

Es werden die Ereignisse NSStreamEventOpenCompleted und NSStreamEventErrorOccurred aufgerufen.

Bitte hilf mir dabei.

Danke im Voraus.

Ramesh.P

Antworten auf die Frage(1)

Ihre Antwort auf die Frage