---
title: NetworkChannel
framework: network
role: symbol
role_heading: Class
path: network/networkchannel
---

# NetworkChannel

A base class supporting sending and recieving data through an arbitrary network channel.

## Declaration

```swift
class NetworkChannel<ApplicationProtocol> where ApplicationProtocol : NetworkProtocolOptions
```

## Overview

Overview The interface exposed by this type (and any derived classes) is dependent on the generic ApplicationProtocol parameter.

## Topics

### Operators

- [==(_:_:)](network/networkchannel/==(_:_:).md)

### Instance Properties

- [debugDescription](network/networkchannel/debugdescription.md)
- [id](network/networkchannel/id.md)
- [maximumDatagramSize](network/networkchannel/maximumdatagramsize.md)
- [messages](network/networkchannel/messages.md)
- [parameters](network/networkchannel/parameters.md)
- [state](network/networkchannel/state-swift.property.md)

### Instance Methods

- [close(code:reason:metadata:)](network/networkchannel/close(code:reason:metadata:).md)
- [dataTransferReport()](network/networkchannel/datatransferreport().md)
- [establishmentReport()](network/networkchannel/establishmentreport().md)
- [metadata(definition:)](network/networkchannel/metadata(definition:).md)
- [onBetterPathUpdate(_:)](network/networkchannel/onbetterpathupdate(_:).md)
- [onPathUpdate(_:)](network/networkchannel/onpathupdate(_:).md)
- [onViabilityUpdate(_:)](network/networkchannel/onviabilityupdate(_:).md)
- [ping(_:metadata:)](network/networkchannel/ping(_:metadata:).md)
- [pong(_:metadata:)](network/networkchannel/pong(_:metadata:).md)
- [receive()](network/networkchannel/receive()-3a115.md)
- [receive()](network/networkchannel/receive()-3atum.md)
- [receive()](network/networkchannel/receive()-5p11z.md)
- [receive()](network/networkchannel/receive()-86md7.md)
- [receive()](network/networkchannel/receive()-8jbul.md)
- [receive(as:)](network/networkchannel/receive(as:).md)
- [receive(atLeast:atMost:)](network/networkchannel/receive(atleast:atmost:).md)
- [receive(exactly:)](network/networkchannel/receive(exactly:).md)
- [send(_:endOfStream:metadata:)](network/networkchannel/send(_:endofstream:metadata:)-4f2l0.md)
- [send(_:endOfStream:metadata:)](network/networkchannel/send(_:endofstream:metadata:)-79bb6.md)
- [send(_:lastMessage:metadata:other:)](network/networkchannel/send(_:lastmessage:metadata:other:).md)
- [send(_:metadata:)](network/networkchannel/send(_:metadata:)-3r1av.md)
- [send(_:metadata:)](network/networkchannel/send(_:metadata:)-42nkz.md)
- [send(_:metadata:)](network/networkchannel/send(_:metadata:)-4rxt1.md)
- [send(_:metadata:)](network/networkchannel/send(_:metadata:)-5ec48.md)
- [send(_:type:lastMessage:metadata:)](network/networkchannel/send(_:type:lastmessage:metadata:).md)
- [sendIdempotent(_:endOfStream:metadata:)](network/networkchannel/sendidempotent(_:endofstream:metadata:)-4bo5u.md)
- [sendIdempotent(_:endOfStream:metadata:)](network/networkchannel/sendidempotent(_:endofstream:metadata:)-6cko0.md)
- [sendIdempotent(_:metadata:)](network/networkchannel/sendidempotent(_:metadata:)-37eiq.md)
- [sendIdempotent(_:metadata:)](network/networkchannel/sendidempotent(_:metadata:)-6tubc.md)
- [sendIdempotent(_:type:lastMessage:metadata:)](network/networkchannel/sendidempotent(_:type:lastmessage:metadata:).md)
- [startReceive(_:)](network/networkchannel/startreceive(_:).md)
- [startSend(_:metadata:handler:)](network/networkchannel/startsend(_:metadata:handler:)-15tt3.md)
- [startSend(_:metadata:handler:)](network/networkchannel/startsend(_:metadata:handler:)-5xhjv.md)

### Enumerations

- [NetworkChannel.State](network/networkchannel/state-swift.enum.md)

## Relationships

### Inherited By

- [NetworkConnection](network/networkconnection.md)
- [QUIC.Datagrams](network/quic/datagrams.md)
- [QUIC.Stream](network/quic/stream.md)

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [Identifiable](swift/identifiable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
