Struct ReceiveBytes<ISocket>
Namespace: Tool.Sockets.Kernels
Assembly: Tool.Net.dll
Socket 通讯资源 对象(必须回收,丢失风险大)
public readonly struct ReceiveBytes<ISocket> : IBytesCore, IDisposable, IAsyncDisposableType 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)
资源对象
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)
资源对象
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)
资源对象
public ReceiveBytes(in UserKey key, ISocket client, in BytesCore bytesCore, bool onlydata)Parameters
key UserKey
IP端口
client ISocket
连接对象
bytesCore BytesCore
可回收数据对象
onlydata bool
数据包完整
Properties
Array
获取连续内存
public ArraySegment<byte> Array { get; }Property Value
Client
连接对象
public ISocket Client { get; }Property Value
ISocket
IsDispose
获取是否被回收
public bool IsDispose { get; }Property Value
Key
身份标识或IP端口
public UserKey Key { get; }Property Value
Length
流长度
public int Length { get; }Property Value
Memory
返回数据
public Memory<byte> Memory { get; }Property Value
OnlyData
表示是否需要验证数据包
public bool OnlyData { get; }Property Value
Span
返回数据
public Span<byte> Span { get; }Property Value
Methods
Dispose()
使用完后及时回收
public void Dispose()GetIMemoryOwner()
获取内存器核心
public IMemoryOwner<byte> GetIMemoryOwner()Returns
OrderCount()
获取一个仅在测试时有用的数据
public object OrderCount()Returns
SetMemory(in Memory<byte>)
写入有效的接收数据包
public void SetMemory(in Memory<byte> memory)Parameters
SetMemory(in Span<byte>)
写入有效的发送数据包
public void SetMemory(in Span<byte> span)Parameters
SetMemory(in ReadOnlySequence<byte>)
写入有效的发送数据包
public void SetMemory(in ReadOnlySequence<byte> memories)Parameters
memories ReadOnlySequence<byte>
ToString()
文本信息
public override string ToString()Returns
TransferByte()
移交内存器
public BytesCore TransferByte()