---
title: "CFStreamCreatePairWithSocketToNetService(_:_:_:_:)"
framework: cfnetwork
role: symbol
role_heading: Function
path: "cfnetwork/cfstreamcreatepairwithsockettonetservice(_:_:_:_:)"
---

# CFStreamCreatePairWithSocketToNetService(_:_:_:_:)

Creates a pair of streams for a CFNetService.

## Declaration

```swift
func CFStreamCreatePairWithSocketToNetService(_ alloc: CFAllocator?, _ service: CFNetService, _ readStream: UnsafeMutablePointer<Unmanaged<CFReadStream>?>?, _ writeStream: UnsafeMutablePointer<Unmanaged<CFWriteStream>?>?)
```

## Parameters

- `alloc`: The allocator to use to allocate memory for the CFReadStream and CFWriteStream objects. Pass NULL or kCFAllocatorDefault to use the current default allocator.
- `service`: Reference to the CFNetService to which the streams are to be connected. If the service is not resolved, the service will be resolved before the streams are connected.
- `writeStream`: Upon return, contains a CFWriteStream object connected to the service specified by service, or NULL if there is a failure during creation. If you pass NULL, the function will not create a writable stream. Ownership follows the https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-103029.

## Discussion

Discussion The streams do not create a socket, resolve the service, or connect to the service’s host until you open one of the streams. Most properties are shared by both streams. Setting a shared property for one stream automatically sets the property for the other. Special Considerations This function is thread safe.

## See Also

### Streams

- [CFReadStreamCreateForHTTPRequest(_:_:)](cfnetwork/cfreadstreamcreateforhttprequest(_:_:).md)
- [CFReadStreamCreateForStreamedHTTPRequest(_:_:_:)](cfnetwork/cfreadstreamcreateforstreamedhttprequest(_:_:_:).md)
- [kCFStreamPropertyHTTPAttemptPersistentConnection](cfnetwork/kcfstreampropertyhttpattemptpersistentconnection.md)
- [kCFStreamPropertyHTTPFinalRequest](cfnetwork/kcfstreampropertyhttpfinalrequest.md)
- [kCFStreamPropertyHTTPFinalURL](cfnetwork/kcfstreampropertyhttpfinalurl.md)
- [kCFStreamPropertyHTTPProxy](cfnetwork/kcfstreampropertyhttpproxy.md)
- [kCFStreamPropertyHTTPProxyHost](cfnetwork/kcfstreampropertyhttpproxyhost.md)
- [kCFStreamPropertyHTTPProxyPort](cfnetwork/kcfstreampropertyhttpproxyport.md)
- [kCFStreamPropertyHTTPRequestBytesWrittenCount](cfnetwork/kcfstreampropertyhttprequestbyteswrittencount.md)
- [kCFStreamPropertyHTTPResponseHeader](cfnetwork/kcfstreampropertyhttpresponseheader.md)
- [kCFStreamPropertyHTTPSProxyHost](cfnetwork/kcfstreampropertyhttpsproxyhost.md)
- [kCFStreamPropertyHTTPSProxyPort](cfnetwork/kcfstreampropertyhttpsproxyport.md)
- [kCFStreamPropertyHTTPShouldAutoredirect](cfnetwork/kcfstreampropertyhttpshouldautoredirect.md)
- [CFWriteStreamCreateWithFTPURL(_:_:)](cfnetwork/cfwritestreamcreatewithftpurl(_:_:).md)
- [CFReadStreamCreateWithFTPURL(_:_:)](cfnetwork/cfreadstreamcreatewithftpurl(_:_:).md)
