Skip to content

Struct ReceiveBytes<ISocket>

Namespace: Tool.Sockets.Kernels
Assembly: Tool.Net.dll

Socket 通讯资源 对象(必须回收,丢失风险大)

csharp
public readonly struct ReceiveBytes<ISocket> : IBytesCore, IDisposable, IAsyncDisposable

Type Parameters

ISocket

Implements

IBytesCore, IDisposable, IAsyncDisposable

Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods

ObjectExtension.Add<T>(object, object, object), ObjectExtension.CopyEntity(object, object, params string[]), ObjectExtension.EntityToJson(object), ObjectExtension.EntityToJson(object, bool), ObjectExtension.EntityToJson(object, bool, string), DictionaryExtension.GetDictionary(object), TypeExtension.GetFieldKey(object, string, out bool), TypeExtension.GetFieldKey<T>(object, string, out bool), TypeExtension.GetFieldKey(object, Type, string, out bool), ObjectExtension.GetIntPtr(object), ObjectExtension.GetIntPtrInt(object), TypeExtension.GetPropertieFind(object, string, bool), TypeExtension.GetProperties(object), TypeExtension.GetPropertyKey(object, string, out bool), TypeExtension.GetPropertyKey<T>(object, string, out bool), TypeExtension.GetPropertyKey(object, Type, string, out bool), TypeExtension.GetValue(object, PropertyDescriptor), TypeExtension.GetValue(object, string, bool), TypeExtension.GetValue(object, string), ObjectExtension.Read<T>(object, object, int, int), ObjectExtension.Read<T>(object, int, object, int, int), DictionaryExtension.SetDictionary(object, IDictionary<string, object>), TypeExtension.SetFieldKey(object, string, object), TypeExtension.SetFieldKey<T>(object, string, object), TypeExtension.SetFieldKey(object, Type, string, object), TypeExtension.SetPropertyKey(object, string, object), TypeExtension.SetPropertyKey<T>(object, string, object), TypeExtension.SetPropertyKey(object, Type, string, object), TypeExtension.SetValue(object, PropertyDescriptor, object), TypeExtension.SetValue(object, string, object, bool), TypeExtension.SetValue(object, string, object), ObjectExtension.ToBase64String(object), ObjectExtension.ToBytes(object), ObjectExtension.ToBytes(object, out Type), DictionaryExtension.ToDictionary(object), DictionaryExtension.ToDictionary<T>(object), DictionaryExtension.ToIDictionary(object), DictionaryExtension.ToIDictionary<T>(object), ObjectExtension.ToJson(object), ObjectExtension.ToJson(object, JsonSerializerOptions), ObjectExtension.ToJsonWeb(object), ObjectExtension.ToJsonWeb(object, Action<JsonSerializerOptions>), ObjectExtension.ToTryVar<T>(object, T), ObjectExtension.ToVar<T>(object), ObjectExtension.ToVar(object, Type, bool), ObjectExtension.ToVar(object, string), ObjectExtension.ToXml(object)

Constructors

ReceiveBytes(in UserKey, ISocket, int, bool)

资源对象

csharp
public ReceiveBytes(in UserKey key, ISocket client, int length, bool onlydata)

Parameters

key UserKey

IP端口

client ISocket

连接对象

length int

包含长度

onlydata bool

数据包完整

ReceiveBytes(in UserKey, ISocket, IMemoryOwner<byte>, int, bool)

资源对象

csharp
public ReceiveBytes(in UserKey key, ISocket client, IMemoryOwner<byte> dataOwner, int length, bool onlydata)

Parameters

key UserKey

IP端口

client ISocket

连接对象

dataOwner IMemoryOwner<byte>

可回收数据对象

length int

包含长度

onlydata bool

数据包完整

ReceiveBytes(in UserKey, ISocket, in BytesCore, bool)

资源对象

csharp
public ReceiveBytes(in UserKey key, ISocket client, in BytesCore bytesCore, bool onlydata)

Parameters

key UserKey

IP端口

client ISocket

连接对象

bytesCore BytesCore

可回收数据对象

onlydata bool

数据包完整

Properties

Array

获取连续内存

csharp
public ArraySegment<byte> Array { get; }

Property Value

ArraySegment<byte>

Client

连接对象

csharp
public ISocket Client { get; }

Property Value

ISocket

IsDispose

获取是否被回收

csharp
public bool IsDispose { get; }

Property Value

bool

Key

身份标识或IP端口

csharp
public UserKey Key { get; }

Property Value

UserKey

Length

流长度

csharp
public int Length { get; }

Property Value

int

Memory

返回数据

csharp
public Memory<byte> Memory { get; }

Property Value

Memory<byte>

OnlyData

表示是否需要验证数据包

csharp
public bool OnlyData { get; }

Property Value

bool

Span

返回数据

csharp
public Span<byte> Span { get; }

Property Value

Span<byte>

Methods

Dispose()

使用完后及时回收

csharp
public void Dispose()

GetIMemoryOwner()

获取内存器核心

csharp
public IMemoryOwner<byte> GetIMemoryOwner()

Returns

IMemoryOwner<byte>

OrderCount()

获取一个仅在测试时有用的数据

csharp
public object OrderCount()

Returns

object

SetMemory(in Memory<byte>)

写入有效的接收数据包

csharp
public void SetMemory(in Memory<byte> memory)

Parameters

memory Memory<byte>

SetMemory(in Span<byte>)

写入有效的发送数据包

csharp
public void SetMemory(in Span<byte> span)

Parameters

span Span<byte>

SetMemory(in ReadOnlySequence<byte>)

写入有效的发送数据包

csharp
public void SetMemory(in ReadOnlySequence<byte> memories)

Parameters

memories ReadOnlySequence<byte>

ToString()

文本信息

csharp
public override string ToString()

Returns

string

TransferByte()

移交内存器

csharp
public BytesCore TransferByte()

Returns

BytesCore

基于Apache-2.0协议开源