Skip to content

Class StateObject ​

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

通信公共基础类

csharp
public abstract class StateObject

Inheritance ​

object ← StateObject

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协议开源