Struct SendBytes<ISocket>
Namespace: Tool.Sockets.Kernels
Assembly: Tool.Net.dll
Socket 通讯资源 对象(必须回收,丢失风险大)
public readonly struct SendBytes<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
SendBytes(ISocket, int, bool)
资源对象
public SendBytes(ISocket client, int length, bool onlydata)Parameters
client ISocket
连接对象
length int
包含长度
onlydata bool
数据包完整
SendBytes(ISocket, IMemoryOwner<byte>, int, bool)
资源对象
public SendBytes(ISocket client, IMemoryOwner<byte> dataOwner, int length, bool onlydata)Parameters
client ISocket
连接对象
dataOwner IMemoryOwner<byte>
可回收数据对象
length int
包含长度
onlydata bool
数据包完整
SendBytes(ISocket, in BytesCore, bool)
资源对象
public SendBytes(ISocket client, in BytesCore bytesCore, bool onlydata)Parameters
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
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
GetMemory()
获取有效的发送数据包
public Memory<byte> GetMemory()Returns
GetMemory(uint, byte)
获取有效的发送数据包(UDP协议版)
public Memory<byte> GetMemory(uint orderCount, byte code = 0)Parameters
orderCount uint
序列ID
code byte
协议代号
Returns
SetMemory(in Memory<byte>, int)
写入有效的发送数据包
public void SetMemory(in Memory<byte> memory, int start = 0)Parameters
start int
SetMemory(in Span<byte>, int)
写入有效的发送数据包
public void SetMemory(in Span<byte> span, int start = 0)Parameters
start int
SetMemory(in ArraySegment<byte>, int)
写入有效的发送数据包
public void SetMemory(in ArraySegment<byte> bytes, int start = 0)Parameters
bytes ArraySegment<byte>
start int
Slice(int, int)
用于进行输出缩减包大小
public SendBytes<ISocket> Slice(int start, int length)Parameters
start int
只能是0
length int
小于总大小的数
Returns
SendBytes<ISocket>
Exceptions
ToString()
文本信息
public override string ToString()Returns
TransferByte()
移交内存器
public BytesCore TransferByte()