An object you use to listen for incoming network connections.


final class NWListener


Creating Listeners

init(using: NWParameters, on: NWEndpoint.Port)

Initializes a network listener, with an optional local port.

func start(queue: DispatchQueue)

Registers for listening, and sets the queue on which all listener events are delivered.

var stateUpdateHandler: ((NWListener.State) -> Void)?

A handler that receives listener state updates.

enum NWListener.State

States indicating whether a listener is able to accept incoming connections.

var port: NWEndpoint.Port?

The port on which the listener can accept connections.

func cancel()

Stops listening for inbound connections.

Receiving Connections

var newConnectionHandler: ((NWConnection) -> Void)?

A handler that receives inbound connections.

var newConnectionLimit: Int

The remaining number of inbound connections to deliver before rejecting connections.

static let InfiniteConnectionLimit: Int

A static value to indicate that inbound connections should not be limited.

Advertising Bonjour Services

var service: NWListener.Service?

A Bonjour service that advertises the listener on the local network.

struct NWListener.Service

A description used to advertise the Bonjour service that a listener provides.

var serviceRegistrationUpdateHandler: ((NWListener.ServiceRegistrationChange) -> Void)?

A handler that receives updates for the service endpoint being advertised.

enum NWListener.ServiceRegistrationChange

Changes to how a network listener's service is advertised.

Inspecting Listeners

let parameters: NWParameters

The parameters used to initialize the listener.

var queue: DispatchQueue?

The queue on which listener events are delivered.

var debugDescription: String

The description of the listener.


See Also

Connections and Listeners

class NWConnection

A bidirectional data connection between a local endpoint and a remote endpoint.

class NWBrowser

An object you use to browse for available network services.

class NWEthernetChannel

An object you use to send and receive custom Ethernet frames.