public override async Task <int> ReadAsync(ArraySegment <byte> buffer, CancellationToken cancellationToken = new CancellationToken()) { int len = await WrappedSocket.ReadAsync(buffer, cancellationToken); _data.BytesRead += len; return(len); }
private async Task ReadBytesAsync(ArraySegment <byte> result, CancellationToken cancellationToken = default(CancellationToken)) { int count = result.Count; do { int num = await WrappedSocket.ReadAsync(result, cancellationToken).ConfigureAwait(false); if (num != 0) { count -= num; } else { throw new EndOfStreamException("Unexpected end of stream while trying to read crypto packet!"); } } while (count > 0); }