Class TcpConnection
Namespace: DotBoxD.Transports.Tcp
Assembly: DotBoxD.Transports.Tcp.dll
TCP-based connection implementation.
public sealed class TcpConnection : IRpcFrameChannel, IRpcValueTaskChannel, IRpcChannel, IAsyncDisposableInheritance
Section titled “Inheritance”Implements
Section titled “Implements”IRpcFrameChannel, IRpcValueTaskChannel, IRpcChannel, IAsyncDisposable
Inherited Members
Section titled “Inherited Members”object.Equals(object), object.Equals(object, object), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object, object), object.ToString()
Constructors
Section titled “Constructors”TcpConnection(TcpClient)
Section titled “ TcpConnection(TcpClient)”public TcpConnection(TcpClient client)Parameters
Section titled “Parameters”client TcpClient
TcpConnection(TcpClient, TimeSpan?)
Section titled “ TcpConnection(TcpClient, TimeSpan?)”Creates a TCP connection. frameReadIdleTimeout bounds how long an
frame read may stall with no data before the connection is torn down. This bounds both the first
frame byte and body reads so a slow-loris peer cannot pin a connection or rented buffer. Pass
System.Threading.Timeout.InfiniteTimeSpan to disable; null uses
DotBoxD.Transports.Tcp.TcpConnection.DefaultFrameReadIdleTimeout.
public TcpConnection(TcpClient client, TimeSpan? frameReadIdleTimeout)Parameters
Section titled “Parameters”client TcpClient
frameReadIdleTimeout TimeSpan?
Fields
Section titled “Fields”DefaultFrameReadIdleTimeout
Section titled “ DefaultFrameReadIdleTimeout”Default idle timeout applied to frame reads (30 seconds).
public static readonly TimeSpan DefaultFrameReadIdleTimeoutField Value
Section titled “Field Value”Properties
Section titled “Properties”IsConnected
Section titled “ IsConnected”Whether this connection is believed to be live. This is a best-effort hint: it
combines the disposed flag with System.Net.Sockets.TcpClient.Connected, which
reflects only the last known socket state and does not probe the wire. A dropped connection
is not observed here until the next send/receive fails — rely on I/O exceptions for the
authoritative state.
public bool IsConnected { get; }Property Value
Section titled “Property Value”RemoteEndpoint
Section titled “ RemoteEndpoint”Gets a string representation of the remote endpoint.
public string RemoteEndpoint { get; }Property Value
Section titled “Property Value”Methods
Section titled “Methods”DisposeAsync()
Section titled “ DisposeAsync()”Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
public ValueTask DisposeAsync()Returns
Section titled “Returns”A task that represents the asynchronous dispose operation.
ReceiveAsync(CancellationToken)
Section titled “ ReceiveAsync(CancellationToken)”Receives a framed message. The caller owns the returned DotBoxD.Services.Buffers.Payload and must
dispose it. A payload with DotBoxD.Services.Buffers.Payload.Length of 0 signals the channel was closed.
public Task<Payload> ReceiveAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”ReceiveFrameValueAsync(CancellationToken)
Section titled “ ReceiveFrameValueAsync(CancellationToken)”public ValueTask<RpcFrame> ReceiveFrameValueAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”ReceiveValueAsync(CancellationToken)
Section titled “ ReceiveValueAsync(CancellationToken)”public ValueTask<Payload> ReceiveValueAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”SendAsync(ReadOnlyMemory<byte>, CancellationToken)
Section titled “ SendAsync(ReadOnlyMemory<byte>, CancellationToken)”Sends a framed message over the channel.
public Task SendAsync(ReadOnlyMemory<byte> data, CancellationToken ct = default)Parameters
Section titled “Parameters”data ReadOnlyMemory<byte>
Returns
Section titled “Returns”SendFrameValueAsync(PooledBufferWriter, CancellationToken)
Section titled “ SendFrameValueAsync(PooledBufferWriter, CancellationToken)”public ValueTask SendFrameValueAsync(PooledBufferWriter frame, CancellationToken ct = default)Parameters
Section titled “Parameters”frame PooledBufferWriter
Returns
Section titled “Returns”SendValueAsync(ReadOnlyMemory<byte>, CancellationToken)
Section titled “ SendValueAsync(ReadOnlyMemory<byte>, CancellationToken)”public ValueTask SendValueAsync(ReadOnlyMemory<byte> data, CancellationToken ct = default)Parameters
Section titled “Parameters”data ReadOnlyMemory<byte>