Skip to content

Class StateObject

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

通信公共基础类

csharp
public abstract class StateObject

Inheritance

objectStateObject

Derived

QuicStateObject, TcpStateObject, UdpStateObject, WebStateObject

Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), 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)

Remarks

代码由逆血提供支持

Fields

EmptyIpv4Port

默认IP信息

csharp
protected static readonly Ipv4Port EmptyIpv4Port

Field Value

Ipv4Port

HeadSize

默认大小

csharp
public const int HeadSize = 6

Field Value

int

Properties

KeepAliveObj

获取持久连接协议

csharp
public Span<byte> KeepAliveObj { get; }

Property Value

Span<byte>

Methods

CreateSocket(bool, NetBufferSize)

创建用于连接的 对象

csharp
public static Socket CreateSocket(bool isTcp, NetBufferSize bufferSize)

Parameters

isTcp bool

是否是Tcp

bufferSize NetBufferSize

缓冲区枚举

Returns

Socket

对象

GetIpPort(HttpListenerContext)

根据HttpListenerContext获取IP加端口

csharp
public static Ipv4Port GetIpPort(HttpListenerContext Context)

Parameters

Context HttpListenerContext

Returns

Ipv4Port

GetIpPort(Socket)

根据Socket获取IP加端口

csharp
public static Ipv4Port GetIpPort(Socket Client)

Parameters

Client Socket

Returns

Ipv4Port

GetIpPort(EndPoint)

根据EndPoint获取IP加端口

csharp
public static Ipv4Port GetIpPort(EndPoint iep)

Parameters

iep EndPoint

Returns

Ipv4Port

HashCodeByte(in Memory<byte>)

根据字节获取哈希值

csharp
public static int HashCodeByte(in Memory<byte> bytes)

Parameters

bytes Memory<byte>

字节

Returns

int

哈希值

IsIpPort(string, out Ipv4Port)

根据传入字符串验证是否是IP加端口

csharp
public static bool IsIpPort(string IpPort, out Ipv4Port ipnum)

Parameters

IpPort string

IP+端口

ipnum Ipv4Port

Returns

bool

QueueUserWorkItem<T>(ReceiveEvent<T>, ReceiveBytes<T>)

任务事件线程池

csharp
public static void QueueUserWorkItem<T>(ReceiveEvent<T> receive, ReceiveBytes<T> data)

Parameters

receive ReceiveEvent<T>

委托

data ReceiveBytes<T>

数据

Type Parameters

T

类型

ReceivedAsync<T>(ReceiveEvent<T>, ReceiveBytes<T>)

任务事件单实例

csharp
public static ValueTask ReceivedAsync<T>(ReceiveEvent<T> receive, ReceiveBytes<T> data)

Parameters

receive ReceiveEvent<T>

委托

data ReceiveBytes<T>

数据

Returns

ValueTask

任务结果

Type Parameters

T

类型

SocketIsDispose(Socket)

获取 Disposed 属性

csharp
public static bool SocketIsDispose(Socket socket)

Parameters

socket Socket

Returns

bool

基于Apache-2.0协议开源