<!--
{
  "documentType" : "article",
  "framework" : "Network",
  "identifier" : "/documentation/Network/network-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Network Functions"
}
-->

# Network Functions

Access Network framework functions used in C.

## Topics

### Functions

[`nw_advertise_descriptor_copy_txt_record_object`](/documentation/Network/nw_advertise_descriptor_copy_txt_record_object(_:))

Accesses the TXT record to advertise with the service.

[`nw_advertise_descriptor_create_application_service`](/documentation/Network/nw_advertise_descriptor_create_application_service(_:))

[`nw_advertise_descriptor_create_bonjour_service`](/documentation/Network/nw_advertise_descriptor_create_bonjour_service(_:_:_:))

Initializes a Bonjour service to advertise.

[`nw_advertise_descriptor_get_application_service_name`](/documentation/Network/nw_advertise_descriptor_get_application_service_name(_:))

[`nw_advertise_descriptor_get_no_auto_rename`](/documentation/Network/nw_advertise_descriptor_get_no_auto_rename(_:))

Checks whether the service prohibits automatic renaming in the event of a name conflict.

[`nw_advertise_descriptor_set_no_auto_rename`](/documentation/Network/nw_advertise_descriptor_set_no_auto_rename(_:_:))

Sets a Boolean to indicate whether the service prohibits automatic renaming in the event of a name conflict.

[`nw_advertise_descriptor_set_txt_record`](/documentation/Network/nw_advertise_descriptor_set_txt_record(_:_:_:))

Sets the TXT record as a raw buffer to advertise with the service.

[`nw_advertise_descriptor_set_txt_record_object`](/documentation/Network/nw_advertise_descriptor_set_txt_record_object(_:_:))

Sets the TXT record to advertise with the service.

[`nw_browse_descriptor_create_application_service`](/documentation/Network/nw_browse_descriptor_create_application_service(_:))

[`nw_browse_descriptor_create_bonjour_service`](/documentation/Network/nw_browse_descriptor_create_bonjour_service(_:_:))

Initializes a service descriptor used to discover a Bonjour service.

[`nw_browse_descriptor_get_application_service_name`](/documentation/Network/nw_browse_descriptor_get_application_service_name(_:))

[`nw_browse_descriptor_get_bonjour_service_domain`](/documentation/Network/nw_browse_descriptor_get_bonjour_service_domain(_:))

Accesses the Bonjour service domain set on a browse descriptor.

[`nw_browse_descriptor_get_bonjour_service_type`](/documentation/Network/nw_browse_descriptor_get_bonjour_service_type(_:))

Accesses the Bonjour service type set on a browse descriptor.

[`nw_browse_descriptor_get_include_txt_record`](/documentation/Network/nw_browse_descriptor_get_include_txt_record(_:))

Checks if the browse descriptor requires including associated TXT records with all results.

[`nw_browse_descriptor_set_include_txt_record`](/documentation/Network/nw_browse_descriptor_set_include_txt_record(_:_:))

Requires including associated TXT records with all results generated for this service descriptor.

[`nw_browse_result_copy_endpoint`](/documentation/Network/nw_browse_result_copy_endpoint(_:))

The discovered service endpoint.

[`nw_browse_result_copy_txt_record_object`](/documentation/Network/nw_browse_result_copy_txt_record_object(_:))

Accesses the TXT record associated with a discovered service.

[`nw_browse_result_enumerate_interfaces`](/documentation/Network/nw_browse_result_enumerate_interfaces(_:_:))

Enumerates the list of interfaces on which the service was discovered.

[`nw_browse_result_get_changes`](/documentation/Network/nw_browse_result_get_changes(_:_:))

Compares two discovered services and calculates changes between them.

[`nw_browse_result_get_interfaces_count`](/documentation/Network/nw_browse_result_get_interfaces_count(_:))

Accesses the number of interfaces associated with a discovered service.

[`nw_browser_cancel`](/documentation/Network/nw_browser_cancel(_:))

Stops browsing for services.

[`nw_browser_copy_browse_descriptor`](/documentation/Network/nw_browser_copy_browse_descriptor(_:))

Accesses the service descriptor with which the browser was created.

[`nw_browser_copy_parameters`](/documentation/Network/nw_browser_copy_parameters(_:))

Accesses the parameters with which the browser was created.

[`nw_browser_create`](/documentation/Network/nw_browser_create(_:_:))

Initializes a browser with a type of service to discover.

[`nw_browser_set_browse_results_changed_handler`](/documentation/Network/nw_browser_set_browse_results_changed_handler(_:_:))

Sets the handler to receive updates about discovered services.

[`nw_browser_set_queue`](/documentation/Network/nw_browser_set_queue(_:_:))

Sets the queue on which all browser events will be delivered.

[`nw_browser_set_state_changed_handler`](/documentation/Network/nw_browser_set_state_changed_handler(_:_:))

Sets a handler to receive browser state updates.

[`nw_browser_start`](/documentation/Network/nw_browser_start(_:))

Starts browsing for services.

[`nw_connection_access_establishment_report`](/documentation/Network/nw_connection_access_establishment_report(_:_:_:))

Requests a copy of the connection’s establishment report once the connection is in the ready state.

[`nw_connection_batch`](/documentation/Network/nw_connection_batch(_:_:))

Defines a block in which calls to send and receive are processed as a batch to improve performance.

[`nw_connection_cancel`](/documentation/Network/nw_connection_cancel(_:))

Cancels the connection and gracefully disconnects any established network protocols.

[`nw_connection_cancel_current_endpoint`](/documentation/Network/nw_connection_cancel_current_endpoint(_:))

Causes the current endpoint to be rejected, allowing the connection to try another resolved address.

[`nw_connection_copy_current_path`](/documentation/Network/nw_connection_copy_current_path(_:))

Accesses the network path the connection is using.

[`nw_connection_copy_description`](/documentation/Network/nw_connection_copy_description(_:))

Copies the description of the connection as a string.

[`nw_connection_copy_endpoint`](/documentation/Network/nw_connection_copy_endpoint(_:))

Accesses the endpoint with which the connection was created.

[`nw_connection_copy_parameters`](/documentation/Network/nw_connection_copy_parameters(_:))

Accesses the parameters with which the connection was created.

[`nw_connection_copy_protocol_metadata`](/documentation/Network/nw_connection_copy_protocol_metadata(_:_:))

Retrieves the connection-wide metadata for a specific protocol.

[`nw_connection_create`](/documentation/Network/nw_connection_create(_:_:))

Initializes a new connection to a remote endpoint.

[`nw_connection_create_new_data_transfer_report`](/documentation/Network/nw_connection_create_new_data_transfer_report(_:))

Begins a new data transfer report, which can later be collected.

[`nw_connection_force_cancel`](/documentation/Network/nw_connection_force_cancel(_:))

Cancels the connection and immediately disconnects any established network protocols.

[`nw_connection_get_maximum_datagram_size`](/documentation/Network/nw_connection_get_maximum_datagram_size(_:))

Accesses the maximum size of a datagram message that can be sent on a connection.

[`nw_connection_group_cancel`](/documentation/Network/nw_connection_group_cancel(_:))

Cancels the connection group object and leaves the network group.

[`nw_connection_group_copy_descriptor`](/documentation/Network/nw_connection_group_copy_descriptor(_:))

Accesses the descriptor of the group you use to initialize the connection group.

[`nw_connection_group_copy_local_endpoint_for_message`](/documentation/Network/nw_connection_group_copy_local_endpoint_for_message(_:_:))

Accesses the local address and port you use to receive the message.

[`nw_connection_group_copy_parameters`](/documentation/Network/nw_connection_group_copy_parameters(_:))

Accesses the parameters with which you initialize the connection group.

[`nw_connection_group_copy_path_for_message`](/documentation/Network/nw_connection_group_copy_path_for_message(_:_:))

Accesses the network path on which you receive the message.

[`nw_connection_group_copy_protocol_metadata`](/documentation/Network/nw_connection_group_copy_protocol_metadata(_:_:))

[`nw_connection_group_copy_protocol_metadata_for_message`](/documentation/Network/nw_connection_group_copy_protocol_metadata_for_message(_:_:_:))

[`nw_connection_group_copy_remote_endpoint_for_message`](/documentation/Network/nw_connection_group_copy_remote_endpoint_for_message(_:_:))

Accesses the endpoint that originates the message you receive.

[`nw_connection_group_create`](/documentation/Network/nw_connection_group_create(_:_:))

Initializes a new connection group with a group identifier.

[`nw_connection_group_extract_connection`](/documentation/Network/nw_connection_group_extract_connection(_:_:_:))

[`nw_connection_group_extract_connection_for_message`](/documentation/Network/nw_connection_group_extract_connection_for_message(_:_:))

Converts a message you receive from an endpoint into a connection object that you use for long-term communication with that endpoint.

[`nw_connection_group_reinsert_extracted_connection`](/documentation/Network/nw_connection_group_reinsert_extracted_connection(_:_:))

[`nw_connection_group_reply`](/documentation/Network/nw_connection_group_reply(_:_:_:_:))

Sends a reply to the specific endpoint that originates a group message you receive.

[`nw_connection_group_send_message`](/documentation/Network/nw_connection_group_send_message(_:_:_:_:_:))

Sends data to the entire group, or to a specific member of the group.

[`nw_connection_group_set_new_connection_handler`](/documentation/Network/nw_connection_group_set_new_connection_handler(_:_:))

[`nw_connection_group_set_queue`](/documentation/Network/nw_connection_group_set_queue(_:_:))

Sets the queue on which you handle connection group events.

[`nw_connection_group_set_receive_handler`](/documentation/Network/nw_connection_group_set_receive_handler(_:_:_:_:))

Sets a handler that receives inbound messages from members of the group.

[`nw_connection_group_set_state_changed_handler`](/documentation/Network/nw_connection_group_set_state_changed_handler(_:_:))

Sets a handler that receives connection group state updates.

[`nw_connection_group_start`](/documentation/Network/nw_connection_group_start(_:))

Joins the group and registers to receive messages.

[`nw_connection_receive`](/documentation/Network/nw_connection_receive(_:_:_:_:))

Schedules a single receive completion handler, with a range indicating how many bytes the handler can receive at one time.

[`nw_connection_receive_message`](/documentation/Network/nw_connection_receive_message(_:_:))

Schedules a single receive completion handler for a complete message, as opposed to a range of bytes.

[`nw_connection_restart`](/documentation/Network/nw_connection_restart(_:))

Restarts a connection that is in the waiting state.

[`nw_connection_send`](/documentation/Network/nw_connection_send(_:_:_:_:_:))

Sends data on a connection.

[`nw_connection_set_better_path_available_handler`](/documentation/Network/nw_connection_set_better_path_available_handler(_:_:))

Sets a handler that receives updates when an alternative network path is preferred over the current path.

[`nw_connection_set_path_changed_handler`](/documentation/Network/nw_connection_set_path_changed_handler(_:_:))

Sets a handler that receives network path updates.

[`nw_connection_set_queue`](/documentation/Network/nw_connection_set_queue(_:_:))

Sets the queue on which all connection events are delivered.

[`nw_connection_set_state_changed_handler`](/documentation/Network/nw_connection_set_state_changed_handler(_:_:))

Sets a handler to receive connection state updates.

[`nw_connection_set_viability_changed_handler`](/documentation/Network/nw_connection_set_viability_changed_handler(_:_:))

Sets a handler that receives updates when data can be sent and received.

[`nw_connection_start`](/documentation/Network/nw_connection_start(_:))

Starts establishing a connection.

[`nw_content_context_copy_antecedent`](/documentation/Network/nw_content_context_copy_antecedent(_:))

Accesses the optional message context that must be sent before the context you are sending.

[`nw_content_context_copy_protocol_metadata`](/documentation/Network/nw_content_context_copy_protocol_metadata(_:_:))

Retreives the metadata associated with a specific protocol.

[`nw_content_context_create`](/documentation/Network/nw_content_context_create(_:))

Initializes a custom message context.

[`nw_content_context_foreach_protocol_metadata`](/documentation/Network/nw_content_context_foreach_protocol_metadata(_:_:))

Iterates through all protocol metadata associated with the message context.

[`nw_content_context_get_expiration_milliseconds`](/documentation/Network/nw_content_context_get_expiration_milliseconds(_:))

Accesses the expiration set for this message context.

[`nw_content_context_get_identifier`](/documentation/Network/nw_content_context_get_identifier(_:))

Accesses the identifier used to create this message context.

[`nw_content_context_get_is_final`](/documentation/Network/nw_content_context_get_is_final(_:))

Checks whether this context represents the final message being received.

[`nw_content_context_get_relative_priority`](/documentation/Network/nw_content_context_get_relative_priority(_:))

Accesses the relative value of priority used to reorder contexts when sending.

[`nw_content_context_set_antecedent`](/documentation/Network/nw_content_context_set_antecedent(_:_:))

Set an optional message context that must be sent before the context you are sending.

[`nw_content_context_set_expiration_milliseconds`](/documentation/Network/nw_content_context_set_expiration_milliseconds(_:_:))

Sets the number of milliseconds after which sending the data associated with this context must begin, otherwise the data is discarded.

[`nw_content_context_set_is_final`](/documentation/Network/nw_content_context_set_is_final(_:_:))

Sets a Boolean indicating if this context represents the final message being sent.

[`nw_content_context_set_metadata_for_protocol`](/documentation/Network/nw_content_context_set_metadata_for_protocol(_:_:))

Sets protocol metadata to configure per-message or per-packet properties.

[`nw_content_context_set_relative_priority`](/documentation/Network/nw_content_context_set_relative_priority(_:_:))

Sets the relative value of priority used to reorder contexts when sending.

[`nw_data_transfer_report_collect`](/documentation/Network/nw_data_transfer_report_collect(_:_:_:))

Stops an outstanding data transfer report and calculates the results.

[`nw_data_transfer_report_copy_path_interface`](/documentation/Network/nw_data_transfer_report_copy_path_interface(_:_:))

Accesses the network interface the path used.

[`nw_data_transfer_report_get_duration_milliseconds`](/documentation/Network/nw_data_transfer_report_get_duration_milliseconds(_:))

Checks the duration of the data transfer report, from when it was started to when it was collected.

[`nw_data_transfer_report_get_path_count`](/documentation/Network/nw_data_transfer_report_get_path_count(_:))

Checks the number of valid paths in the report.

[`nw_data_transfer_report_get_path_radio_type`](/documentation/Network/nw_data_transfer_report_get_path_radio_type(_:_:))

[`nw_data_transfer_report_get_received_application_byte_count`](/documentation/Network/nw_data_transfer_report_get_received_application_byte_count(_:_:))

Accesses the number of bytes the connection delivered.

[`nw_data_transfer_report_get_received_ip_packet_count`](/documentation/Network/nw_data_transfer_report_get_received_ip_packet_count(_:_:))

Accesses the number of IP packets the connection received.

[`nw_data_transfer_report_get_received_transport_byte_count`](/documentation/Network/nw_data_transfer_report_get_received_transport_byte_count(_:_:))

Accesses the number of bytes the transport protocol delivered.

[`nw_data_transfer_report_get_received_transport_duplicate_byte_count`](/documentation/Network/nw_data_transfer_report_get_received_transport_duplicate_byte_count(_:_:))

Accesses the number of duplicated bytes the transport protocol detected.

[`nw_data_transfer_report_get_received_transport_out_of_order_byte_count`](/documentation/Network/nw_data_transfer_report_get_received_transport_out_of_order_byte_count(_:_:))

Accesses the number of bytes the transport protocol received out of order.

[`nw_data_transfer_report_get_sent_application_byte_count`](/documentation/Network/nw_data_transfer_report_get_sent_application_byte_count(_:_:))

Accesses the number of bytes sent on the connection.

[`nw_data_transfer_report_get_sent_ip_packet_count`](/documentation/Network/nw_data_transfer_report_get_sent_ip_packet_count(_:_:))

Accesses the number of IP packets the connection sent.

[`nw_data_transfer_report_get_sent_transport_byte_count`](/documentation/Network/nw_data_transfer_report_get_sent_transport_byte_count(_:_:))

Accesses the number of bytes sent into the transport protocol.

[`nw_data_transfer_report_get_sent_transport_retransmitted_byte_count`](/documentation/Network/nw_data_transfer_report_get_sent_transport_retransmitted_byte_count(_:_:))

Accesses the number of bytes the transport protocol retransmitted.

[`nw_data_transfer_report_get_state`](/documentation/Network/nw_data_transfer_report_get_state(_:))

Checks whether a data transfer report is collected.

[`nw_data_transfer_report_get_transport_minimum_rtt_milliseconds`](/documentation/Network/nw_data_transfer_report_get_transport_minimum_rtt_milliseconds(_:_:))

Accesses the minimum round-trip time the transport protocol measured, in milliseconds.

[`nw_data_transfer_report_get_transport_rtt_variance`](/documentation/Network/nw_data_transfer_report_get_transport_rtt_variance(_:_:))

Accesses the variance of the round-trip time the transport protocol measured.

[`nw_data_transfer_report_get_transport_smoothed_rtt_milliseconds`](/documentation/Network/nw_data_transfer_report_get_transport_smoothed_rtt_milliseconds(_:_:))

Accesses the smoothed round-trip time the transport protocol measured, in milliseconds.

[`nw_endpoint_copy_address_string`](/documentation/Network/nw_endpoint_copy_address_string(_:))

Copies the address of an endpoint as a string.

[`nw_endpoint_copy_port_string`](/documentation/Network/nw_endpoint_copy_port_string(_:))

Copies the port of an endpoint as a string.

[`nw_endpoint_copy_txt_record`](/documentation/Network/nw_endpoint_copy_txt_record(_:))

[`nw_endpoint_create_address`](/documentation/Network/nw_endpoint_create_address(_:))

Creates a network endpoint with an address structure.

[`nw_endpoint_create_bonjour_service`](/documentation/Network/nw_endpoint_create_bonjour_service(_:_:_:))

Creates a network endpoint with a Bonjour service name, type, and domain.

[`nw_endpoint_create_host`](/documentation/Network/nw_endpoint_create_host(_:_:))

Creates a network endpoint with a hostname and port, where the hostname may be interpreted as an IP address.

[`nw_endpoint_create_url`](/documentation/Network/nw_endpoint_create_url(_:))

Creates a network endpoint with a URL string.

[`nw_endpoint_get_address`](/documentation/Network/nw_endpoint_get_address(_:))

Accesses the address structure stored in an address endpoint.

[`nw_endpoint_get_bonjour_service_domain`](/documentation/Network/nw_endpoint_get_bonjour_service_domain(_:))

Accesses the Bonjour service domain stored in an endpoint.

[`nw_endpoint_get_bonjour_service_name`](/documentation/Network/nw_endpoint_get_bonjour_service_name(_:))

Accesses the Bonjour service name stored in an endpoint.

[`nw_endpoint_get_bonjour_service_type`](/documentation/Network/nw_endpoint_get_bonjour_service_type(_:))

Accesses the Bonjour service type stored in an endpoint.

[`nw_endpoint_get_hostname`](/documentation/Network/nw_endpoint_get_hostname(_:))

Accesses the hostname stored in an endpoint.

[`nw_endpoint_get_port`](/documentation/Network/nw_endpoint_get_port(_:))

Accesses the port stored in an endpoint, in host-byte order.

[`nw_endpoint_get_signature`](/documentation/Network/nw_endpoint_get_signature(_:_:))

[`nw_endpoint_get_type`](/documentation/Network/nw_endpoint_get_type(_:))

Accesses the type of a endpoint.

[`nw_endpoint_get_url`](/documentation/Network/nw_endpoint_get_url(_:))

Accesses the URL string stored in an endpoint.

[`nw_error_copy_cf_error`](/documentation/Network/nw_error_copy_cf_error(_:))

Returns a copy of a network error.

[`nw_error_get_error_code`](/documentation/Network/nw_error_get_error_code(_:))

Accesses the specific code of the network error.

[`nw_error_get_error_domain`](/documentation/Network/nw_error_get_error_domain(_:))

Accesses the domain of the network error.

[`nw_establishment_report_copy_proxy_endpoint`](/documentation/Network/nw_establishment_report_copy_proxy_endpoint(_:))

Accesses the endpoint of the proxy the connection used.

[`nw_establishment_report_enumerate_protocols`](/documentation/Network/nw_establishment_report_enumerate_protocols(_:_:))

Iterates a list of protocol handshakes in order from first completed to last completed.

[`nw_establishment_report_enumerate_resolution_reports`](/documentation/Network/nw_establishment_report_enumerate_resolution_reports(_:_:))

[`nw_establishment_report_enumerate_resolutions`](/documentation/Network/nw_establishment_report_enumerate_resolutions(_:_:))

Iterates a list of resolution steps performed during connection establishment, in order from first resolved to last resolved.

[`nw_establishment_report_get_attempt_started_after_milliseconds`](/documentation/Network/nw_establishment_report_get_attempt_started_after_milliseconds(_:))

Accesses the time between the call to start and the beginning of the successful connection attempt, in milliseconds.

[`nw_establishment_report_get_duration_milliseconds`](/documentation/Network/nw_establishment_report_get_duration_milliseconds(_:))

Checks the total duration of the successful connection establishment attempt, from the preparing state to the ready state.

[`nw_establishment_report_get_previous_attempt_count`](/documentation/Network/nw_establishment_report_get_previous_attempt_count(_:))

Checks the number of attempts made before the successful attempt, when the connection moved from the preparing state back to the waiting state.

[`nw_establishment_report_get_proxy_configured`](/documentation/Network/nw_establishment_report_get_proxy_configured(_:))

Checks whether a proxy was configured on the connection.

[`nw_establishment_report_get_used_proxy`](/documentation/Network/nw_establishment_report_get_used_proxy(_:))

Checks whether the connection used a proxy.

[`nw_ethernet_channel_cancel`](/documentation/Network/nw_ethernet_channel_cancel(_:))

Unregisters the channel from the interface.

[`nw_ethernet_channel_create`](/documentation/Network/nw_ethernet_channel_create(_:_:))

Initializes an Ethernet channel on a specific interface with a custom Ethernet type.

[`nw_ethernet_channel_create_with_parameters`](/documentation/Network/nw_ethernet_channel_create_with_parameters(_:_:_:))

[`nw_ethernet_channel_get_maximum_payload_size`](/documentation/Network/nw_ethernet_channel_get_maximum_payload_size(_:))

[`nw_ethernet_channel_send`](/documentation/Network/nw_ethernet_channel_send(_:_:_:_:_:))

Sends a single Ethernet frame over a channel to a specific Ethernet address.

[`nw_ethernet_channel_set_queue`](/documentation/Network/nw_ethernet_channel_set_queue(_:_:))

Sets the queue on which all channel events are delivered.

[`nw_ethernet_channel_set_receive_handler`](/documentation/Network/nw_ethernet_channel_set_receive_handler(_:_:))

Sets a handler to receive inbound Ethernet frames.

[`nw_ethernet_channel_set_state_changed_handler`](/documentation/Network/nw_ethernet_channel_set_state_changed_handler(_:_:))

Sets a handler to receive channel state updates.

[`nw_ethernet_channel_start`](/documentation/Network/nw_ethernet_channel_start(_:))

Starts the process of registering the channel.

[`nw_framer_async`](/documentation/Network/nw_framer_async(_:_:))

Requests that a block be executed on the connection’s internal scheduling context.

[`nw_framer_copy_local_endpoint`](/documentation/Network/nw_framer_copy_local_endpoint(_:))

Accesses the local endpoint of the connection in which your protocol is running.

[`nw_framer_copy_options`](/documentation/Network/nw_framer_copy_options(_:))

[`nw_framer_copy_parameters`](/documentation/Network/nw_framer_copy_parameters(_:))

Accesses the parameters of the connection in which your protocol is running.

[`nw_framer_copy_remote_endpoint`](/documentation/Network/nw_framer_copy_remote_endpoint(_:))

Accesses the remote endpoint of the connection in which your protocol is running.

[`nw_framer_create_definition`](/documentation/Network/nw_framer_create_definition(_:_:_:))

Initializes a new protocol definition based on your protocol implementation.

[`nw_framer_create_options`](/documentation/Network/nw_framer_create_options(_:))

Initializes a set of protocol options with a custom framer definition.

[`nw_framer_deliver_input`](/documentation/Network/nw_framer_deliver_input(_:_:_:_:_:))

Delivers an inbound message containing arbitrary data from your protocol to the application.

[`nw_framer_deliver_input_no_copy`](/documentation/Network/nw_framer_deliver_input_no_copy(_:_:_:_:))

Delivers an inbound message containing a specific number of next received bytes.

[`nw_framer_mark_failed_with_error`](/documentation/Network/nw_framer_mark_failed_with_error(_:_:))

Indicates to a connection that your protocol has encountered an error, or has gracefully closed.

[`nw_framer_mark_ready`](/documentation/Network/nw_framer_mark_ready(_:))

Indicates to a connection that your protocol’s handshake is complete.

[`nw_framer_message_access_value`](/documentation/Network/nw_framer_message_access_value(_:_:_:))

Accesses a custom value stored in a framer message.

[`nw_framer_message_copy_object_value`](/documentation/Network/nw_framer_message_copy_object_value(_:_:))

Accesses an NSObject value stored in a framer message.

[`nw_framer_message_create`](/documentation/Network/nw_framer_message_create(_:))

Initializes an empty message from within a framer implementation.

[`nw_framer_message_set_object_value`](/documentation/Network/nw_framer_message_set_object_value(_:_:_:))

Sets an NSObject value to be stored in a framer message.

[`nw_framer_message_set_value`](/documentation/Network/nw_framer_message_set_value(_:_:_:_:))

Sets a value to be stored in a framer message, with a completion to call to disposed the stored value when the message is released.

[`nw_framer_options_copy_object_value`](/documentation/Network/nw_framer_options_copy_object_value(_:_:))

[`nw_framer_options_set_object_value`](/documentation/Network/nw_framer_options_set_object_value(_:_:_:))

[`nw_framer_parse_input`](/documentation/Network/nw_framer_parse_input(_:_:_:_:_:))

Examines the content of input data while inside your input handler block.

[`nw_framer_parse_output`](/documentation/Network/nw_framer_parse_output(_:_:_:_:_:))

Examines the content of output data while inside your output handler.

[`nw_framer_pass_through_input`](/documentation/Network/nw_framer_pass_through_input(_:))

Indicates that your protocol no longer needs to handle input data.

[`nw_framer_pass_through_output`](/documentation/Network/nw_framer_pass_through_output(_:))

Indicates that your protocol no longer needs to handle output data.

[`nw_framer_prepend_application_protocol`](/documentation/Network/nw_framer_prepend_application_protocol(_:_:))

Dynamically adds another protocol that will run above your protocol after your protocol calls [`nw_framer_mark_ready(_:)`](/documentation/Network/nw_framer_mark_ready(_:)).

[`nw_framer_protocol_create_message`](/documentation/Network/nw_framer_protocol_create_message(_:))

Initializes an empty message for a custom framer definition.

[`nw_framer_schedule_wakeup`](/documentation/Network/nw_framer_schedule_wakeup(_:_:))

Requests that the [`nw_framer_wakeup_handler_t`](/documentation/Network/nw_framer_wakeup_handler_t) be called on your protocol at a specific time in the future.

[`nw_framer_set_cleanup_handler`](/documentation/Network/nw_framer_set_cleanup_handler(_:_:))

Sets a block to handle the final cleanup of allocations made by your protocol instance.

[`nw_framer_set_input_handler`](/documentation/Network/nw_framer_set_input_handler(_:_:))

Sets a block to handle new inbound data.

[`nw_framer_set_output_handler`](/documentation/Network/nw_framer_set_output_handler(_:_:))

Sets a block to handle new outbound messages.

[`nw_framer_set_stop_handler`](/documentation/Network/nw_framer_set_stop_handler(_:_:))

Sets a block to handle when the connection is being closed.

[`nw_framer_set_wakeup_handler`](/documentation/Network/nw_framer_set_wakeup_handler(_:_:))

Sets a handler to receive scheduled wakeup events.

[`nw_framer_write_output`](/documentation/Network/nw_framer_write_output(_:_:_:))

Sends arbitrary output data in a buffer from your protocol to the next protocol.

[`nw_framer_write_output_data`](/documentation/Network/nw_framer_write_output_data(_:_:))

Sends arbitrary output data from your protocol to the next protocol.

[`nw_framer_write_output_no_copy`](/documentation/Network/nw_framer_write_output_no_copy(_:_:))

Sends a specific number of bytes from a message while inside your output handler.

[`nw_group_descriptor_add_endpoint`](/documentation/Network/nw_group_descriptor_add_endpoint(_:_:))

Adds a multicast address endpoint you specify to define an extra IP multicast group to join.

[`nw_group_descriptor_create_multicast`](/documentation/Network/nw_group_descriptor_create_multicast(_:))

Creates group descriptor you use to join an IP multicast group on a local network.

[`nw_group_descriptor_create_multiplex`](/documentation/Network/nw_group_descriptor_create_multiplex(_:))

[`nw_group_descriptor_enumerate_endpoints`](/documentation/Network/nw_group_descriptor_enumerate_endpoints(_:_:))

Sets a handler to list all endpoints added to the group descriptor.

[`nw_interface_get_index`](/documentation/Network/nw_interface_get_index(_:))

Accesses the system interface index associated with the interface.

[`nw_interface_get_name`](/documentation/Network/nw_interface_get_name(_:))

Accesses the name of the interface.

[`nw_interface_get_type`](/documentation/Network/nw_interface_get_type(_:))

Accesses the type of the interface, such as Wi-Fi or Loopback.

[`nw_ip_create_metadata`](/documentation/Network/nw_ip_create_metadata())

Initializes an IP packet configuration with default settings.

[`nw_ip_metadata_get_ecn_flag`](/documentation/Network/nw_ip_metadata_get_ecn_flag(_:))

Checks the Explicit Congestion Notification flag value received on an IP packet.

[`nw_ip_metadata_get_receive_time`](/documentation/Network/nw_ip_metadata_get_receive_time(_:))

Access the time at which a packet was received, in nanoseconds, based on `CLOCK_MONOTONIC_RAW`.

[`nw_ip_metadata_get_service_class`](/documentation/Network/nw_ip_metadata_get_service_class(_:))

Accesses a specific service class to mark on an IP packet.

[`nw_ip_metadata_set_ecn_flag`](/documentation/Network/nw_ip_metadata_set_ecn_flag(_:_:))

Sets a specific Explicit Congestion Notification flag value to set on an IP packet.

[`nw_ip_metadata_set_service_class`](/documentation/Network/nw_ip_metadata_set_service_class(_:_:))

Sets a specific service class to mark on an IP packet.

[`nw_ip_options_set_calculate_receive_time`](/documentation/Network/nw_ip_options_set_calculate_receive_time(_:_:))

Configures a connection to deliver receive timestamps for IP packets.

[`nw_ip_options_set_disable_fragmentation`](/documentation/Network/nw_ip_options_set_disable_fragmentation(_:_:))

Configures a connection to disable fragmentation on outbound packets.

[`nw_ip_options_set_disable_multicast_loopback`](/documentation/Network/nw_ip_options_set_disable_multicast_loopback(_:_:))

[`nw_ip_options_set_hop_limit`](/documentation/Network/nw_ip_options_set_hop_limit(_:_:))

Configures the default hop limit for packets generated by a connection.

[`nw_ip_options_set_local_address_preference`](/documentation/Network/nw_ip_options_set_local_address_preference(_:_:))

Configures a connection to prefer certain types of local addresses, such as temporary or stable.

[`nw_ip_options_set_use_minimum_mtu`](/documentation/Network/nw_ip_options_set_use_minimum_mtu(_:_:))

Configures a connection to use the minimum MTU value, which is 1280 bytes for IPv6.

[`nw_ip_options_set_version`](/documentation/Network/nw_ip_options_set_version(_:_:))

Sets a required IP version to disable all other versions for a connection.

[`nw_listener_cancel`](/documentation/Network/nw_listener_cancel(_:))

Stops listening for inbound connections.

[`nw_listener_create`](/documentation/Network/nw_listener_create(_:))

Initializes a network listener, which will select a random port.

[`nw_listener_create_with_connection`](/documentation/Network/nw_listener_create_with_connection(_:_:))

Initializes a network listener to receive new streams on a multiplexed connection.

[`nw_listener_create_with_launchd_key`](/documentation/Network/nw_listener_create_with_launchd_key(_:_:))

[`nw_listener_create_with_port`](/documentation/Network/nw_listener_create_with_port(_:_:))

Initializes a network listener with a specified local port.

[`nw_listener_get_new_connection_limit`](/documentation/Network/nw_listener_get_new_connection_limit(_:))

Checks the remaining number of inbound connections to deliver before rejecting connections.

[`nw_listener_get_port`](/documentation/Network/nw_listener_get_port(_:))

The port on which the listener can accept connections.

[`nw_listener_set_advertise_descriptor`](/documentation/Network/nw_listener_set_advertise_descriptor(_:_:))

Sets a Bonjour service that advertises the listener on the local network.

[`nw_listener_set_advertised_endpoint_changed_handler`](/documentation/Network/nw_listener_set_advertised_endpoint_changed_handler(_:_:))

Sets a handler that receives updates for the service endpoint being advertised.

[`nw_listener_set_new_connection_group_handler`](/documentation/Network/nw_listener_set_new_connection_group_handler(_:_:))

[`nw_listener_set_new_connection_handler`](/documentation/Network/nw_listener_set_new_connection_handler(_:_:))

Sets a handler that receives inbound connections.

[`nw_listener_set_new_connection_limit`](/documentation/Network/nw_listener_set_new_connection_limit(_:_:))

Resets the number of inbound connections to deliver before rejecting connections.

[`nw_listener_set_queue`](/documentation/Network/nw_listener_set_queue(_:_:))

Sets the queue on which all listener events are delivered.

[`nw_listener_set_state_changed_handler`](/documentation/Network/nw_listener_set_state_changed_handler(_:_:))

Sets a handler to receive listener state updates.

[`nw_listener_start`](/documentation/Network/nw_listener_start(_:))

Registers for listening for inbound connections.

[`nw_multicast_group_descriptor_get_disable_unicast_traffic`](/documentation/Network/nw_multicast_group_descriptor_get_disable_unicast_traffic(_:))

Checks a Boolean that indicates whether a connection group should reject unicast traffic.

[`nw_multicast_group_descriptor_set_disable_unicast_traffic`](/documentation/Network/nw_multicast_group_descriptor_set_disable_unicast_traffic(_:_:))

Sets a Boolean that indicates whether a connection group should reject unicast traffic.

[`nw_multicast_group_descriptor_set_specific_source`](/documentation/Network/nw_multicast_group_descriptor_set_specific_source(_:_:))

Sets an optional address endpoint used to filter received multicast packets.

[`nw_parameters_create_application_service`](/documentation/Network/nw_parameters_create_application_service())

[`nw_parameters_create_quic`](/documentation/Network/nw_parameters_create_quic(_:))

Initializes parameters for QUIC connections and listeners.

[`nw_parameters_requires_dnssec_validation`](/documentation/Network/nw_parameters_requires_dnssec_validation(_:))

Checks whether a connection requires DNSSEC validation when resolving endpoints.

[`nw_parameters_set_requires_dnssec_validation`](/documentation/Network/nw_parameters_set_requires_dnssec_validation(_:_:))

Determines whether a connection requires DNSSEC validation when resolving endpoints.

[`nw_path_copy_effective_local_endpoint`](/documentation/Network/nw_path_copy_effective_local_endpoint(_:))

Accesses the local endpoint in use by a connection’s network path.

[`nw_path_copy_effective_remote_endpoint`](/documentation/Network/nw_path_copy_effective_remote_endpoint(_:))

Accesses the remote endpoint in use by a connection’s network path.

[`nw_path_enumerate_gateways`](/documentation/Network/nw_path_enumerate_gateways(_:_:))

Enumerates the list of gateways configured on the interfaces available to a path.

[`nw_path_enumerate_interfaces`](/documentation/Network/nw_path_enumerate_interfaces(_:_:))

Enumerates the list of all interfaces available to the path, in order of preference.

[`nw_path_get_status`](/documentation/Network/nw_path_get_status(_:))

Checks whether a path can be used by connections.

[`nw_path_get_unsatisfied_reason`](/documentation/Network/nw_path_get_unsatisfied_reason(_:))

[`nw_path_has_dns`](/documentation/Network/nw_path_has_dns(_:))

Checks whether the path has a DNS server configured.

[`nw_path_has_ipv4`](/documentation/Network/nw_path_has_ipv4(_:))

Checks whether the path can route IPv4 traffic.

[`nw_path_has_ipv6`](/documentation/Network/nw_path_has_ipv6(_:))

Checks whether the path can route IPv6 traffic.

[`nw_path_is_constrained`](/documentation/Network/nw_path_is_constrained(_:))

Checks whether the path uses an interface in Low Data Mode.

[`nw_path_is_equal`](/documentation/Network/nw_path_is_equal(_:_:))

Compares if two paths are identical.

[`nw_path_is_expensive`](/documentation/Network/nw_path_is_expensive(_:))

Checks whether the path uses an interface that is considered expensive, such as Cellular or a Personal Hotspot.

[`nw_path_monitor_cancel`](/documentation/Network/nw_path_monitor_cancel(_:))

Stops receiving network path updates.

[`nw_path_monitor_create`](/documentation/Network/nw_path_monitor_create())

Initializes a path monitor to observe all available interface types.

[`nw_path_monitor_create_for_ethernet_channel`](/documentation/Network/nw_path_monitor_create_for_ethernet_channel())

[`nw_path_monitor_create_with_type`](/documentation/Network/nw_path_monitor_create_with_type(_:))

Initializes a path monitor to observe a specific interface type.

[`nw_path_monitor_prohibit_interface_type`](/documentation/Network/nw_path_monitor_prohibit_interface_type(_:_:))

Prohibit a path monitor from using a specific interface type.

[`nw_path_monitor_set_cancel_handler`](/documentation/Network/nw_path_monitor_set_cancel_handler(_:_:))

Sets a handler to determine when a monitor is fully cancelled and will no longer deliver events.

[`nw_path_monitor_set_queue`](/documentation/Network/nw_path_monitor_set_queue(_:_:))

Sets a queue on which to deliver path events.

[`nw_path_monitor_set_update_handler`](/documentation/Network/nw_path_monitor_set_update_handler(_:_:))

Sets a handler to receive network path updates.

[`nw_path_monitor_start`](/documentation/Network/nw_path_monitor_start(_:))

Starts monitoring path changes.

[`nw_path_uses_interface_type`](/documentation/Network/nw_path_uses_interface_type(_:_:))

Checks if connections using the path may send traffic over a specific interface type.

[`nw_protocol_copy_ip_definition`](/documentation/Network/nw_protocol_copy_ip_definition())

Accesses the system definition of the Internet Protocol.

[`nw_protocol_copy_quic_definition`](/documentation/Network/nw_protocol_copy_quic_definition())

Accesses the system definition of the QUIC transport protocol.

[`nw_protocol_copy_tcp_definition`](/documentation/Network/nw_protocol_copy_tcp_definition())

Accesses the system definition of the Transport Control Protocol.

[`nw_protocol_copy_tls_definition`](/documentation/Network/nw_protocol_copy_tls_definition())

Accesses the system definition of the Transport Layer Security protocol.

[`nw_protocol_copy_udp_definition`](/documentation/Network/nw_protocol_copy_udp_definition())

Accesses the system definition of the User Datagram Protocol.

[`nw_protocol_copy_ws_definition`](/documentation/Network/nw_protocol_copy_ws_definition())

Accesses the system definition of the WebSocket protocol.

[`nw_protocol_metadata_copy_definition`](/documentation/Network/nw_protocol_metadata_copy_definition(_:))

Accesses the protocol definition associated with the metadata object.

[`nw_protocol_metadata_is_framer_message`](/documentation/Network/nw_protocol_metadata_is_framer_message(_:))

Checks if a metadata object represents a custom framer protocol message.

[`nw_protocol_metadata_is_ip`](/documentation/Network/nw_protocol_metadata_is_ip(_:))

Checks whether a metadata object represents an IP packet.

[`nw_protocol_metadata_is_quic`](/documentation/Network/nw_protocol_metadata_is_quic(_:))

Checks whether a metadata object contains QUIC connection state.

[`nw_protocol_metadata_is_tcp`](/documentation/Network/nw_protocol_metadata_is_tcp(_:))

Checks whether a metadata object contains TCP connection state.

[`nw_protocol_metadata_is_tls`](/documentation/Network/nw_protocol_metadata_is_tls(_:))

Checks whether a metadata object contains TLS connection state.

[`nw_protocol_metadata_is_udp`](/documentation/Network/nw_protocol_metadata_is_udp(_:))

Checks whether a metadata object represents a UDP datagram.

[`nw_protocol_metadata_is_ws`](/documentation/Network/nw_protocol_metadata_is_ws(_:))

Checks whether a metadata object represents a WebSocket message.

[`nw_protocol_options_is_quic`](/documentation/Network/nw_protocol_options_is_quic(_:))

Checks whether an options object uses the QUIC protocol.

[`nw_proxy_config_add_excluded_domain`](/documentation/Network/nw_proxy_config_add_excluded_domain(_:_:))

[`nw_proxy_config_add_match_domain`](/documentation/Network/nw_proxy_config_add_match_domain(_:_:))

[`nw_proxy_config_clear_excluded_domains`](/documentation/Network/nw_proxy_config_clear_excluded_domains(_:))

[`nw_proxy_config_clear_match_domains`](/documentation/Network/nw_proxy_config_clear_match_domains(_:))

[`nw_proxy_config_enumerate_excluded_domains`](/documentation/Network/nw_proxy_config_enumerate_excluded_domains(_:_:))

[`nw_proxy_config_enumerate_match_domains`](/documentation/Network/nw_proxy_config_enumerate_match_domains(_:_:))

[`nw_quic_add_tls_application_protocol`](/documentation/Network/nw_quic_add_tls_application_protocol(_:_:))

Adds a supported Application-Layer Protocol Negotiation value.

[`nw_quic_copy_sec_protocol_metadata`](/documentation/Network/nw_quic_copy_sec_protocol_metadata(_:))

Accesses the result of the QUIC handshake.

[`nw_quic_copy_sec_protocol_options`](/documentation/Network/nw_quic_copy_sec_protocol_options(_:))

Accesses the handshake security options QUIC will use.

[`nw_quic_create_options`](/documentation/Network/nw_quic_create_options())

Initializes a default set of QUIC connection options.

[`nw_quic_get_application_error`](/documentation/Network/nw_quic_get_application_error(_:))

Accesses the QUIC application error code received from the peer.

[`nw_quic_get_application_error_reason`](/documentation/Network/nw_quic_get_application_error_reason(_:))

Accesses the QUIC application error reason received from the peer.

[`nw_quic_get_idle_timeout`](/documentation/Network/nw_quic_get_idle_timeout(_:))

Accesses the idle timeout for the QUIC connection, in milliseconds.

[`nw_quic_get_initial_max_data`](/documentation/Network/nw_quic_get_initial_max_data(_:))

Accesses a QUIC connection’s initial maximum data transport parameter.

[`nw_quic_get_initial_max_stream_data_bidirectional_local`](/documentation/Network/nw_quic_get_initial_max_stream_data_bidirectional_local(_:))

Accesses a QUIC connection’s initial maximum stream data limit for locally-initiated bidirectional streams.

[`nw_quic_get_initial_max_stream_data_bidirectional_remote`](/documentation/Network/nw_quic_get_initial_max_stream_data_bidirectional_remote(_:))

Accesses a QUIC connection’s initial maximum stream data limit for remote-initiated bidirectional streams.

[`nw_quic_get_initial_max_stream_data_unidirectional`](/documentation/Network/nw_quic_get_initial_max_stream_data_unidirectional(_:))

Accesses a QUIC connection’s initial maximum stream data limit for unidirectional streams.

[`nw_quic_get_initial_max_streams_bidirectional`](/documentation/Network/nw_quic_get_initial_max_streams_bidirectional(_:))

Accesses a QUIC connection’s initial maximum number of bidirectional streams.

[`nw_quic_get_initial_max_streams_unidirectional`](/documentation/Network/nw_quic_get_initial_max_streams_unidirectional(_:))

Accesses a QUIC connection’s initial maximum number of unidirectional streams.

[`nw_quic_get_keepalive_interval`](/documentation/Network/nw_quic_get_keepalive_interval(_:))

Accesses the keepalive interval for the QUIC connection, in seconds.

[`nw_quic_get_local_max_streams_bidirectional`](/documentation/Network/nw_quic_get_local_max_streams_bidirectional(_:))

Accesses the maximum number of bidirectional streams that the peer can create on a QUIC connection.

[`nw_quic_get_local_max_streams_unidirectional`](/documentation/Network/nw_quic_get_local_max_streams_unidirectional(_:))

Accesses the maximum number of unidirectional streams that the peer can create on a QUIC connection.

[`nw_quic_get_max_datagram_frame_size`](/documentation/Network/nw_quic_get_max_datagram_frame_size(_:))

Accesses a QUIC connection’s maximum DATAGRAM frame size.

[`nw_quic_get_max_udp_payload_size`](/documentation/Network/nw_quic_get_max_udp_payload_size(_:))

Accesses the maximum length of a QUIC packet that can be received on a connection, in bytes.

[`nw_quic_get_remote_idle_timeout`](/documentation/Network/nw_quic_get_remote_idle_timeout(_:))

Accesses the idle timeout value from the peer’s transport parameters, in milliseconds.

[`nw_quic_get_remote_max_streams_bidirectional`](/documentation/Network/nw_quic_get_remote_max_streams_bidirectional(_:))

Accesses the maximum number of bidirectional streams advertised by peer that the connection is allowed to create.

[`nw_quic_get_remote_max_streams_unidirectional`](/documentation/Network/nw_quic_get_remote_max_streams_unidirectional(_:))

Accesses the maximum number of unidirectional streams advertised by peer that the connection is allowed to create.

[`nw_quic_get_stream_application_error`](/documentation/Network/nw_quic_get_stream_application_error(_:))

Accesses the QUIC application error code received from the peer for the stream.

[`nw_quic_get_stream_id`](/documentation/Network/nw_quic_get_stream_id(_:))

Accesses the QUIC stream identifier.

[`nw_quic_get_stream_is_datagram`](/documentation/Network/nw_quic_get_stream_is_datagram(_:))

Checks if a QUIC stream is a datagram flow, instead of a byte stream.

[`nw_quic_get_stream_is_unidirectional`](/documentation/Network/nw_quic_get_stream_is_unidirectional(_:))

Checks if a QUIC stream is unidirectional, instead of bidirectional.

[`nw_quic_get_stream_type`](/documentation/Network/nw_quic_get_stream_type(_:))

Accesses the stream type of the QUIC stream.

[`nw_quic_get_stream_usable_datagram_frame_size`](/documentation/Network/nw_quic_get_stream_usable_datagram_frame_size(_:))

Accesses the maximum usable size of a datagram frame on a QUIC datagram flow.

[`nw_quic_set_application_error`](/documentation/Network/nw_quic_set_application_error(_:_:_:))

Sets the QUIC application error code to send for the connection.

[`nw_quic_set_idle_timeout`](/documentation/Network/nw_quic_set_idle_timeout(_:_:))

Sets the idle timeout for the QUIC connection, in milliseconds.

[`nw_quic_set_initial_max_data`](/documentation/Network/nw_quic_set_initial_max_data(_:_:))

Sets a QUIC connection’s initial maximum data transport parameter.

[`nw_quic_set_initial_max_stream_data_bidirectional_local`](/documentation/Network/nw_quic_set_initial_max_stream_data_bidirectional_local(_:_:))

Sets a QUIC connection’s initial maximum stream data limit for locally-initiated bidirectional streams.

[`nw_quic_set_initial_max_stream_data_bidirectional_remote`](/documentation/Network/nw_quic_set_initial_max_stream_data_bidirectional_remote(_:_:))

Sets a QUIC connection’s initial maximum stream data limit for remote-initiated bidirectional streams.

[`nw_quic_set_initial_max_stream_data_unidirectional`](/documentation/Network/nw_quic_set_initial_max_stream_data_unidirectional(_:_:))

Sets a QUIC connection’s initial maximum stream data limit for unidirectional streams.

[`nw_quic_set_initial_max_streams_bidirectional`](/documentation/Network/nw_quic_set_initial_max_streams_bidirectional(_:_:))

Sets a QUIC connection’s initial maximum number of bidirectional streams.

[`nw_quic_set_initial_max_streams_unidirectional`](/documentation/Network/nw_quic_set_initial_max_streams_unidirectional(_:_:))

Sets a QUIC connection’s initial maximum number of unidirectional streams.

[`nw_quic_set_keepalive_interval`](/documentation/Network/nw_quic_set_keepalive_interval(_:_:))

Sets the keepalive interval for the QUIC connection, in seconds.

[`nw_quic_set_local_max_streams_bidirectional`](/documentation/Network/nw_quic_set_local_max_streams_bidirectional(_:_:))

Sets the maximum number of bidirectional streams that the peer can create on a QUIC connection.

[`nw_quic_set_local_max_streams_unidirectional`](/documentation/Network/nw_quic_set_local_max_streams_unidirectional(_:_:))

Sets the maximum number of unidirectional streams that the peer can create on a QUIC connection.

[`nw_quic_set_max_datagram_frame_size`](/documentation/Network/nw_quic_set_max_datagram_frame_size(_:_:))

Sets a QUIC connection’s maximum DATAGRAM frame size.

[`nw_quic_set_max_udp_payload_size`](/documentation/Network/nw_quic_set_max_udp_payload_size(_:_:))

Sets the maximum length of a QUIC packet that can be received on a connection, in bytes.

[`nw_quic_set_stream_application_error`](/documentation/Network/nw_quic_set_stream_application_error(_:_:))

Sets the QUIC application error code to send for the stream.

[`nw_quic_set_stream_is_datagram`](/documentation/Network/nw_quic_set_stream_is_datagram(_:_:))

Configures a QUIC stream as a datagram flow, instead of a byte stream.

[`nw_quic_set_stream_is_unidirectional`](/documentation/Network/nw_quic_set_stream_is_unidirectional(_:_:))

Configures a QUIC stream as unidirectional, instead of bidirectional.

[`nw_resolution_report_copy_preferred_endpoint`](/documentation/Network/nw_resolution_report_copy_preferred_endpoint(_:))

Accesses the resolved endpoint that the connection used for its first connection attempt.

[`nw_resolution_report_copy_successful_endpoint`](/documentation/Network/nw_resolution_report_copy_successful_endpoint(_:))

Accesses the resolved endpoint that led to the established connection.

[`nw_resolution_report_get_endpoint_count`](/documentation/Network/nw_resolution_report_get_endpoint_count(_:))

Accesses the number of endpoints resolved in this step.

[`nw_resolution_report_get_milliseconds`](/documentation/Network/nw_resolution_report_get_milliseconds(_:))

Accesses the duration of this resolution step, from when the query was issued to when the response was complete.

[`nw_resolution_report_get_protocol`](/documentation/Network/nw_resolution_report_get_protocol(_:))

Accesses the transport protocol your connection used for DNS resolution.

[`nw_resolution_report_get_source`](/documentation/Network/nw_resolution_report_get_source(_:))

Accesses the source of the DNS response.

[`nw_tcp_create_options`](/documentation/Network/nw_tcp_create_options())

Initializes a default set of TCP connection options.

[`nw_tcp_get_available_receive_buffer`](/documentation/Network/nw_tcp_get_available_receive_buffer(_:))

Accesses the number of available bytes in the TCP receive buffer.

[`nw_tcp_get_available_send_buffer`](/documentation/Network/nw_tcp_get_available_send_buffer(_:))

Accesses the number of available bytes in the TCP send buffer.

[`nw_tcp_options_set_connection_timeout`](/documentation/Network/nw_tcp_options_set_connection_timeout(_:_:))

Sets the number of seconds that TCP waits before timing out its handshake.

[`nw_tcp_options_set_disable_ack_stretching`](/documentation/Network/nw_tcp_options_set_disable_ack_stretching(_:_:))

Disables TCP acknowledgment stretching.

[`nw_tcp_options_set_disable_ecn`](/documentation/Network/nw_tcp_options_set_disable_ecn(_:_:))

Disables negotiation of Explicit Congestion Notification markings.

[`nw_tcp_options_set_enable_fast_open`](/documentation/Network/nw_tcp_options_set_enable_fast_open(_:_:))

Enables TCP Fast Open on a connection.

[`nw_tcp_options_set_enable_keepalive`](/documentation/Network/nw_tcp_options_set_enable_keepalive(_:_:))

Enables TCP keepalives.

[`nw_tcp_options_set_keepalive_count`](/documentation/Network/nw_tcp_options_set_keepalive_count(_:_:))

Sets the number of keepalive probes that TCP sends before terminating the connection.

[`nw_tcp_options_set_keepalive_idle_time`](/documentation/Network/nw_tcp_options_set_keepalive_idle_time(_:_:))

Sets the number of seconds of idleness that TCP waits before sending keepalive probes.

[`nw_tcp_options_set_keepalive_interval`](/documentation/Network/nw_tcp_options_set_keepalive_interval(_:_:))

Sets the number of seconds that TCP waits between sending keepalive probes.

[`nw_tcp_options_set_maximum_segment_size`](/documentation/Network/nw_tcp_options_set_maximum_segment_size(_:_:))

Sets TCP’s maximum segment size in bytes.

[`nw_tcp_options_set_multipath_force_version`](/documentation/Network/nw_tcp_options_set_multipath_force_version(_:_:))

[`nw_tcp_options_set_no_delay`](/documentation/Network/nw_tcp_options_set_no_delay(_:_:))

Disables Nagle’s algorithm for TCP.

[`nw_tcp_options_set_no_options`](/documentation/Network/nw_tcp_options_set_no_options(_:_:))

Sets TCP into no-options mode.

[`nw_tcp_options_set_no_push`](/documentation/Network/nw_tcp_options_set_no_push(_:_:))

Sets TCP into no-push mode.

[`nw_tcp_options_set_persist_timeout`](/documentation/Network/nw_tcp_options_set_persist_timeout(_:_:))

Sets the TCP persist timeout in seconds, as defined by RFC 6429.

[`nw_tcp_options_set_retransmit_connection_drop_time`](/documentation/Network/nw_tcp_options_set_retransmit_connection_drop_time(_:_:))

Sets the number of seconds that TCP waits between retransmission attempts.

[`nw_tcp_options_set_retransmit_fin_drop`](/documentation/Network/nw_tcp_options_set_retransmit_fin_drop(_:_:))

Causes TCP to drop its connection after not receiving an ACK after a FIN.

[`nw_tls_copy_sec_protocol_metadata`](/documentation/Network/nw_tls_copy_sec_protocol_metadata(_:))

Accesses the result of the TLS handshake.

[`nw_tls_copy_sec_protocol_options`](/documentation/Network/nw_tls_copy_sec_protocol_options(_:))

Accesses the handshake security options TLS will use.

[`nw_tls_create_options`](/documentation/Network/nw_tls_create_options())

Initializes a default set of TLS connection options.

[`nw_txt_record_access_bytes`](/documentation/Network/nw_txt_record_access_bytes(_:_:))

Accesses the raw bytes contained within a TXT record.

[`nw_txt_record_access_key`](/documentation/Network/nw_txt_record_access_key(_:_:_:))

Accesses the value for a specific key in a TXT record dictionary.

[`nw_txt_record_apply`](/documentation/Network/nw_txt_record_apply(_:_:))

Iterates through all keys in a TXT record dictionary.

[`nw_txt_record_copy`](/documentation/Network/nw_txt_record_copy(_:))

Performs a deep copy of a TXT record.

[`nw_txt_record_create_dictionary`](/documentation/Network/nw_txt_record_create_dictionary())

Initializes a TXT record as a dictionary of strings.

[`nw_txt_record_create_with_bytes`](/documentation/Network/nw_txt_record_create_with_bytes(_:_:))

Initializes a TXT record with raw bytes.

[`nw_txt_record_find_key`](/documentation/Network/nw_txt_record_find_key(_:_:))

Checks the status of value associated with a key in a TXT record dictionary.

[`nw_txt_record_get_key_count`](/documentation/Network/nw_txt_record_get_key_count(_:))

Accesses the number of keys stored in the TXT record dictionary.

[`nw_txt_record_is_dictionary`](/documentation/Network/nw_txt_record_is_dictionary(_:))

Checks whether a TXT record conforms to a dictionary format.

[`nw_txt_record_is_equal`](/documentation/Network/nw_txt_record_is_equal(_:_:))

Checks whether two TXT records are equivalent.

[`nw_txt_record_remove_key`](/documentation/Network/nw_txt_record_remove_key(_:_:))

Removes a data value in a TXT record dictionary.

[`nw_txt_record_set_key`](/documentation/Network/nw_txt_record_set_key(_:_:_:_:))

Sets a data value in a TXT record dictionary.

[`nw_udp_create_metadata`](/documentation/Network/nw_udp_create_metadata())

Initializes a default UDP message.

[`nw_udp_create_options`](/documentation/Network/nw_udp_create_options())

Initializes a default set of UDP connection options.

[`nw_udp_options_set_prefer_no_checksum`](/documentation/Network/nw_udp_options_set_prefer_no_checksum(_:_:))

Configures the connection to not send UDP checksums.

[`nw_ws_create_metadata`](/documentation/Network/nw_ws_create_metadata(_:))

Initializes a WebSocket message with a specific type code.

[`nw_ws_create_options`](/documentation/Network/nw_ws_create_options(_:))

Initializes a default set of WebSocket connection options.

[`nw_ws_metadata_copy_server_response`](/documentation/Network/nw_ws_metadata_copy_server_response(_:))

Accesses the WebSocket server’s response sent during the handshake.

[`nw_ws_metadata_get_close_code`](/documentation/Network/nw_ws_metadata_get_close_code(_:))

Accesses the close code on a WebSocket message.

[`nw_ws_metadata_get_opcode`](/documentation/Network/nw_ws_metadata_get_opcode(_:))

Checks the type code on a WebSocket message.

[`nw_ws_metadata_set_close_code`](/documentation/Network/nw_ws_metadata_set_close_code(_:_:))

Sets a close code on a WebSocket message.

[`nw_ws_metadata_set_pong_handler`](/documentation/Network/nw_ws_metadata_set_pong_handler(_:_:_:))

Sets a handler on a Ping message to be invoked when the corresponding Pong message is received.

[`nw_ws_options_add_additional_header`](/documentation/Network/nw_ws_options_add_additional_header(_:_:_:))

Adds additional HTTP header fields to be sent by the client during the WebSocket handshake.

[`nw_ws_options_add_subprotocol`](/documentation/Network/nw_ws_options_add_subprotocol(_:_:))

Adds to the list of supported application protocols that will be presented to a WebSocket server during connection establishment.

[`nw_ws_options_set_auto_reply_ping`](/documentation/Network/nw_ws_options_set_auto_reply_ping(_:_:))

Configures the connection to automatically reply to Ping messages instead of delivering them to you.

[`nw_ws_options_set_client_request_handler`](/documentation/Network/nw_ws_options_set_client_request_handler(_:_:_:))

Sets a handler to react to as a server to inbound WebSocket client handshakes.

[`nw_ws_options_set_maximum_message_size`](/documentation/Network/nw_ws_options_set_maximum_message_size(_:_:))

Sets the maximum allowed message size, in bytes, to be received by the WebSocket connection.

[`nw_ws_options_set_skip_handshake`](/documentation/Network/nw_ws_options_set_skip_handshake(_:_:))

Specifies whether the WebSocket protocol skips its handshake and begins framing data once the underlying connection is established.

[`nw_ws_request_enumerate_additional_headers`](/documentation/Network/nw_ws_request_enumerate_additional_headers(_:_:))

Enumerates additional HTTP headers in a WebSocket message.

[`nw_ws_request_enumerate_subprotocols`](/documentation/Network/nw_ws_request_enumerate_subprotocols(_:_:))

Enumerates the supported subprotocols in a WebSocket message.

[`nw_ws_response_add_additional_header`](/documentation/Network/nw_ws_response_add_additional_header(_:_:_:))

Adds an additional HTTP header to a WebSocket server response.

[`nw_ws_response_create`](/documentation/Network/nw_ws_response_create(_:_:))

Initializes a WebSocket server response with a status and selected subprotocol.

[`nw_ws_response_enumerate_additional_headers`](/documentation/Network/nw_ws_response_enumerate_additional_headers(_:_:))

Enumerates the additional HTTP headers in a WebSocket server response.

[`nw_ws_response_get_selected_subprotocol`](/documentation/Network/nw_ws_response_get_selected_subprotocol(_:))

Accesses the selected subprotocol in a WebSocket server response.

[`nw_ws_response_get_status`](/documentation/Network/nw_ws_response_get_status(_:))

Accesses the status of a WebSocket server response.

### Functions

[`nw_advertise_descriptor_create_application_service`](/documentation/Network/nw_advertise_descriptor_create_application_service(_:))

[`nw_advertise_descriptor_get_application_service_name`](/documentation/Network/nw_advertise_descriptor_get_application_service_name(_:))

[`nw_browse_descriptor_create_application_service`](/documentation/Network/nw_browse_descriptor_create_application_service(_:))

[`nw_browse_descriptor_get_application_service_name`](/documentation/Network/nw_browse_descriptor_get_application_service_name(_:))

[`nw_connection_group_copy_protocol_metadata`](/documentation/Network/nw_connection_group_copy_protocol_metadata(_:_:))

[`nw_connection_group_copy_protocol_metadata_for_message`](/documentation/Network/nw_connection_group_copy_protocol_metadata_for_message(_:_:_:))

[`nw_connection_group_extract_connection`](/documentation/Network/nw_connection_group_extract_connection(_:_:_:))

[`nw_connection_group_reinsert_extracted_connection`](/documentation/Network/nw_connection_group_reinsert_extracted_connection(_:_:))

[`nw_connection_group_set_new_connection_handler`](/documentation/Network/nw_connection_group_set_new_connection_handler(_:_:))

[`nw_data_transfer_report_get_path_radio_type`](/documentation/Network/nw_data_transfer_report_get_path_radio_type(_:_:))

[`nw_endpoint_copy_txt_record`](/documentation/Network/nw_endpoint_copy_txt_record(_:))

[`nw_endpoint_get_signature`](/documentation/Network/nw_endpoint_get_signature(_:_:))

[`nw_ethernet_channel_create_with_parameters`](/documentation/Network/nw_ethernet_channel_create_with_parameters(_:_:_:))

[`nw_ethernet_channel_get_maximum_payload_size`](/documentation/Network/nw_ethernet_channel_get_maximum_payload_size(_:))

[`nw_framer_copy_options`](/documentation/Network/nw_framer_copy_options(_:))

[`nw_framer_options_copy_object_value`](/documentation/Network/nw_framer_options_copy_object_value(_:_:))

[`nw_framer_options_set_object_value`](/documentation/Network/nw_framer_options_set_object_value(_:_:_:))

[`nw_group_descriptor_create_multiplex`](/documentation/Network/nw_group_descriptor_create_multiplex(_:))

[`nw_ip_options_set_disable_multicast_loopback`](/documentation/Network/nw_ip_options_set_disable_multicast_loopback(_:_:))

[`nw_listener_create_with_launchd_key`](/documentation/Network/nw_listener_create_with_launchd_key(_:_:))

[`nw_listener_set_new_connection_group_handler`](/documentation/Network/nw_listener_set_new_connection_group_handler(_:_:))

[`nw_parameters_create_application_service`](/documentation/Network/nw_parameters_create_application_service())

[`nw_path_get_unsatisfied_reason`](/documentation/Network/nw_path_get_unsatisfied_reason(_:))

[`nw_path_monitor_create_for_ethernet_channel`](/documentation/Network/nw_path_monitor_create_for_ethernet_channel())

[`nw_proxy_config_add_excluded_domain`](/documentation/Network/nw_proxy_config_add_excluded_domain(_:_:))

[`nw_proxy_config_add_match_domain`](/documentation/Network/nw_proxy_config_add_match_domain(_:_:))

[`nw_proxy_config_clear_excluded_domains`](/documentation/Network/nw_proxy_config_clear_excluded_domains(_:))

[`nw_proxy_config_clear_match_domains`](/documentation/Network/nw_proxy_config_clear_match_domains(_:))

[`nw_proxy_config_enumerate_excluded_domains`](/documentation/Network/nw_proxy_config_enumerate_excluded_domains(_:_:))

[`nw_proxy_config_enumerate_match_domains`](/documentation/Network/nw_proxy_config_enumerate_match_domains(_:_:))

[`nw_tcp_options_set_multipath_force_version`](/documentation/Network/nw_tcp_options_set_multipath_force_version(_:_:))



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)