TLSTool/QNetworkAdditions.m
/* |
Copyright (C) 2016 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
Compatibility shim for OS X 10.10 / iOS 8 networking methods. |
*/ |
#import "QNetworkAdditions.h" |
@implementation QNetworkAdditions |
+ (void)getStreamsToHostWithName:(NSString *)hostname |
port:(NSInteger)port |
inputStream:( NSInputStream * __autoreleasing __nonnull * __nullable)inputStream |
outputStream:(NSOutputStream * __autoreleasing __nonnull * __nullable)outputStream { |
CFReadStreamRef readStream; |
CFWriteStreamRef writeStream; |
assert(hostname != nil); |
assert( (port > 0) && (port < 65536) ); |
assert( (inputStream != NULL) || (outputStream != NULL) ); |
readStream = NULL; |
writeStream = NULL; |
CFStreamCreatePairWithSocketToHost( |
NULL, |
(__bridge CFStringRef) hostname, |
(UInt32) port, |
((inputStream != NULL) ? &readStream : NULL), |
((outputStream != NULL) ? &writeStream : NULL) |
); |
if (inputStream != NULL) { |
*inputStream = CFBridgingRelease(readStream); |
} |
if (outputStream != NULL) { |
*outputStream = CFBridgingRelease(writeStream); |
} |
} |
@end |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-05-23