【问题标题】:Problem with NSStream SSL ConnectionNSStream SSL 连接问题
【发布时间】:2009-11-09 12:54:09
【问题描述】:

我正在使用带有 SSL 属性的 NSStream 进行套接字连接。当我使用 192.168.1.77 等本地 IP 地址时,它工作正常。但是如果我使用任何像 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。在这两种情况下我都会遇到同样的错误。

NSStreamEventOpenCompleted 和 NSStreamEventErrorOccurred 事件被调用。

请帮帮我。

提前致谢。

拉梅什.P

【问题讨论】:

    标签: cocoa-touch macos ssl networking nsstream


    【解决方案1】:

    我解决了这个问题。 以下代码行完成了所有工作。

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

    谢谢, 拉梅什.P

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-25
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2013-04-02
      • 1970-01-01
      相关资源
      最近更新 更多