---
title: "init(protocolFamily:socketType:protocol:address:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/socketport/init(protocolfamily:sockettype:protocol:address:)"
---

# init(protocolFamily:socketType:protocol:address:)

Initializes the receiver as a local socket with the provided arguments.

## Declaration

```swift
init?(protocolFamily family: Int32, socketType type: Int32, protocol: Int32, address: Data)
```

## Parameters

- `family`: The protocol family for the socket port. Possible values are defined in <sys/socket.h>, such as AF_LOCAL, AF_INET, and AF_INET6.
- `type`: The type of socket.
- `protocol`: The specific protocol to use from the protocol family.
- `address`: The family-specific socket address for the receiver copied into an NSData object.

## Return Value

Return Value A local socket port initialized with the provided arguments.

## Discussion

Discussion The receiver must be added to a run loop before it can accept connections or receive messages. Incoming messages are passed to the receiver’s delegate method handlePortMessage:. To create a standard TCP/IP socket, use init(tcpPort:).

## See Also

### Creating Instances

- [init()](foundation/socketport/init().md)
- [init(tcpPort:)](foundation/socketport/init(tcpport:)-6hgbo.md)
- [init(protocolFamily:socketType:protocol:socket:)](foundation/socketport/init(protocolfamily:sockettype:protocol:socket:).md)
- [init(remoteWithTCPPort:host:)](foundation/socketport/init(remotewithtcpport:host:).md)
- [init(remoteWithProtocolFamily:socketType:protocol:address:)](foundation/socketport/init(remotewithprotocolfamily:sockettype:protocol:address:).md)
