CFNetwork SSLHandshake使用套接字流失败(-9806)

时间:2015-06-08 17:20:06

标签: ios sockets ssl nsstream

我的域名有TLS证书,可以在浏览器中使用https。我试图理解这些证书是如何工作的,但它没有意义。有人能指出我如何使用套接字流设置TLS的正确方向吗?从Apple的文档来看,它听起来像你需要做的只是[stream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];,如果服务器证书有效,那么一切都很好。我想我错过了什么。

CFReadStreamRef readStream;
CFWriteStreamRef writeStream;

CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)[url host], port, &readStream, &writeStream);

_inputStream = (__bridge_transfer NSInputStream *)readStream;
_outputStream = (__bridge_transfer NSOutputStream *)writeStream;

[_inputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
[_outputStream setProperty:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];

[_inputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
[_outputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

[_inputStream setDelegate:self];
[_outputStream setDelegate:self];

[_inputStream open];
[_outputStream open];

0 个答案:

没有答案