---
title: "CFStreamCreatePairWithSocket(_:_:_:_:)"
framework: corefoundation
role: symbol
role_heading: Function
path: "corefoundation/cfstreamcreatepairwithsocket(_:_:_:_:)"
---

# CFStreamCreatePairWithSocket(_:_:_:_:)

Creates readable and writable streams connected to a socket.

## Declaration

```swift
func CFStreamCreatePairWithSocket(_ alloc: CFAllocator!, _ sock: CFSocketNativeHandle, _ readStream: UnsafeMutablePointer<Unmanaged<CFReadStream>?>!, _ writeStream: UnsafeMutablePointer<Unmanaged<CFWriteStream>?>!)
```

## Parameters

- `alloc`: The allocator to use to allocate memory for the new objects. Pass NULL or doc://com.apple.corefoundation/documentation/CoreFoundation/kCFAllocatorDefault to use the current default allocator.
- `sock`: The pre-existing (and already connected) socket which the socket streams should use. important: By default, your app is responsible for closing this socket after you close both streams. If you want CFNetwork to take ownership of the socket, set the doc://com.apple.corefoundation/documentation/CoreFoundation/kCFStreamPropertyShouldCloseNativeSocket property of the stream to doc://com.apple.corefoundation/documentation/CoreFoundation/kCFBooleanTrue.
- `readStream`: Upon return, a readable stream connected to the socket address in signature. If you pass NULL, this function will not create a readable stream. Ownership follows the https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/Concepts/Ownership.html#//apple_ref/doc/uid/20001148-103029.
- `writeStream`: Upon return, a writable stream connected to the socket address in signature. If you pass NULL, this 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 Most properties are shared by both streams. Setting a shared property for one stream automatically sets the property for the other.

## See Also

### Creating Streams

- [CFStreamCreatePairWithPeerSocketSignature(_:_:_:_:)](corefoundation/cfstreamcreatepairwithpeersocketsignature(_:_:_:_:).md)
- [CFStreamCreatePairWithSocketToHost(_:_:_:_:_:)](corefoundation/cfstreamcreatepairwithsockettohost(_:_:_:_:_:).md)
- [CFStreamCreateBoundPair(_:_:_:_:)](corefoundation/cfstreamcreateboundpair(_:_:_:_:).md)
- [CFStreamCreatePairWithSocketToCFHost(_:_:_:_:_:)](cfnetwork/cfstreamcreatepairwithsockettocfhost(_:_:_:_:_:).md)
- [CFStreamCreatePairWithSocketToNetService(_:_:_:_:)](cfnetwork/cfstreamcreatepairwithsockettonetservice(_:_:_:_:).md)
