---
title: NEAppProxyFlow
framework: networkextension
role: symbol
role_heading: Class
path: networkextension/neappproxyflow
---

# NEAppProxyFlow

An abstract base class shared by NEAppProxyTCPFlow and NEAppProxyUDPFlow.

## Declaration

```swift
class NEAppProxyFlow
```

## Mentioned in

Handling Flow Copying

## Overview

Overview App Proxy Providers receive network connections to be proxied in the form of NEAppProxyFlow objects, which are passed to the App Proxy Provider via the handleNewFlow(_:) method. NEAppProxyFlow objects are initially in an unopened state. Before they can be used to transmit network data, they must be opened using the open(withLocalEndpoint:completionHandler:) method. When you are finished with a flow, you should call closeReadWithError(_:) and closeWriteWithError(_:), and then release the NEAppProxyFlow object.

## Topics

### Managing the flow life cycle

- [open(withLocalEndpoint:completionHandler:)](networkextension/neappproxyflow/open(withlocalendpoint:completionhandler:).md)
- [closeReadWithError(_:)](networkextension/neappproxyflow/closereadwitherror(_:).md)
- [closeWriteWithError(_:)](networkextension/neappproxyflow/closewritewitherror(_:).md)

### Accessing flow information

- [metaData](networkextension/neappproxyflow/metadata.md)
- [setMetadata(_:)](networkextension/neappproxyflow/setmetadata(_:).md)
- [nw_parameters_t](network/nw_parameters_t.md)
- [isBound](networkextension/neappproxyflow/isbound.md)
- [networkInterface](networkextension/neappproxyflow/networkinterface.md)
- [nw_interface_type_t](network/nw_interface_type_t.md)
- [remoteHostname](networkextension/neappproxyflow/remotehostname.md)

### Errors

- [NEAppProxyFlowError](networkextension/neappproxyflowerror-swift.struct.md)
- [NEAppProxyErrorDomain](networkextension/neappproxyerrordomain.md)
- [NEAppProxyFlowError.Code](networkextension/neappproxyflowerror-swift.struct/code.md)
- [NEAppProxyFlowError](networkextension/neappproxyflowerror-swift.struct.md)

### Instance Properties

- [interface](networkextension/neappproxyflow/interface.md)

### Instance Methods

- [open(withLocalFlowEndpoint:)](networkextension/neappproxyflow/open(withlocalflowendpoint:).md)
- [open(withLocalFlowEndpoint:completionHandler:)](networkextension/neappproxyflow/open(withlocalflowendpoint:completionhandler:).md)
- [setMetadata(on:)](networkextension/neappproxyflow/setmetadata(on:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [NEAppProxyTCPFlow](networkextension/neappproxytcpflow.md)
- [NEAppProxyUDPFlow](networkextension/neappproxyudpflow.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Flow handling

- [NEAppProxyTCPFlow](networkextension/neappproxytcpflow.md)
- [NEAppProxyUDPFlow](networkextension/neappproxyudpflow.md)
- [NEFlowMetaData](networkextension/neflowmetadata.md)
- [In-Provider Networking](networkextension/in-provider-networking.md)
- [Handling Flow Copying](networkextension/handling-flow-copying.md)
