2009-11-09 12 views
5

के साथ समस्या मैं एसएसएस कनेक्शन के लिए एसएसएल संपत्ति के साथ एनएसएसटीम का उपयोग कर रहा हूं। यह ठीक काम करता है जब मैं स्थानीय आईपी पते का उपयोग करता हूं जैसे कि 1 9 2.168.1.77। लेकिन अगर मैं www.xyz.com जैसे किसी भी सर्वर का उपयोग करता हूं (इसमें सुरक्षाLevelTLSv1 है), यह एक त्रुटि त्रुटि कोड दिखाता है: -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 उपयोग करने की कोशिश: (। NSUnknownErrorDomain त्रुटि -9843)

यहाँ मेरी कोड है। मुझे दोनों मामलों में एक ही त्रुटि मिल रही है।

NSStreamEventOpenCompleted और NSStreamEventErrorOccurred ईवेंट कहा जाता है।

कृपया इसमें मेरी सहायता करें।

अग्रिम धन्यवाद।

Ramesh.P

उत्तर

6

मैं इस मुद्दे को हल किया। कोड की निम्नलिखित पंक्ति सब कुछ किया।

[settings setObject:@"www.xyz.com" forKey:(NSString *)kCFStreamSSLPeerName]; 

धन्यवाद, Ramesh.P

संबंधित मुद्दे