Class ClientFrame
Namespace: Tool.Sockets.NetFrame
Assembly: Tool.Net.dll
封装的一个TCP框架(客户端)
public class ClientFrame : EnClientEventDriveInheritance
object ← EnClientEventDrive ← ClientFrame
Inherited Members
EnClientEventDrive.OnInterceptor(EnClient, bool), EnClientEventDrive.OnIsQueue(EnClient, bool), EnClientEventDrive.IsEvent(EnClient), EnClientEventDrive.IsQueue(EnClient), EnClientEventDrive.OpenAllEvent(), EnClientEventDrive.OpenAllQueue(), EnClientEventDrive.CloseAllEvent(), EnClientEventDrive.CloseAllQueue(), 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
代码由逆血提供支持
Constructors
ClientFrame()
无参构造
public ClientFrame()ClientFrame(NetBufferSize)
初始化包
public ClientFrame(NetBufferSize bufferSize)Parameters
bufferSize NetBufferSize
收包规范
ClientFrame(NetBufferSize, bool)
初始化包
public ClientFrame(NetBufferSize bufferSize, bool IsReconnect)Parameters
bufferSize NetBufferSize
收包规范
IsReconnect bool
是否在与服务器断开后主动重连?
Properties
Connected
获取一个值,该值指示 Client 的基础 Socket 是否已连接到远程主机。
public bool Connected { get; }Property Value
IsClose
标识客户端是否关闭
public bool IsClose { get; }Property Value
IsThreadPool
是否使用线程池调度接收后的数据(允许使用者初始化时设置,消息是否有序获取) 默认 true 开启
public bool IsThreadPool { get; init; }Property Value
LocalPoint
当前设备的连接信息
public Ipv4Port LocalPoint { get; }Property Value
Server
服务器的连接信息
public UserKey Server { get; }Property Value
Methods
AddKeepAlive(byte)
添加持久化消息(心跳),防止特殊情况下的断开连接
public void AddKeepAlive(byte TimeInterval)Parameters
TimeInterval byte
Close()
关闭连接,断开处于连接状态的服务器
public void Close()ConnectAsync(int)
异步连接,连接ip地址为127.0.0.1
public Task ConnectAsync(int port)Parameters
port int
要连接的服务器的端口
Returns
ConnectAsync(string, int)
异步连接
public Task ConnectAsync(string ip, int port)Parameters
ip string
要连接的服务器的ip地址
port int
要连接的服务器的端口
Returns
Reconnection()
重连,返回是否重连,如果没有断开是不会重连的
public Task<bool> Reconnection()Returns
Send(ApiPacket)
同步发送消息
public NetResponse Send(ApiPacket api)Parameters
api ApiPacket
接口调用信息
Returns
SendAsync(ApiPacket)
异步发送消息
public ValueTask<NetResponse> SendAsync(ApiPacket api)Parameters
api ApiPacket
接口调用信息
Returns
SendRelay(string, ApiPacket)
同步发送消息(转发给指定客户端)
public NetResponse SendRelay(string IpPort, ApiPacket api)Parameters
IpPort string
事件处理的服务器
api ApiPacket
接口调用信息
Returns
SendRelayAsync(string, ApiPacket)
异步发送消息(转发给指定客户端)
public ValueTask<NetResponse> SendRelayAsync(string IpPort, ApiPacket api)Parameters
IpPort string
事件处理的服务器
api ApiPacket
接口调用信息
Returns
SetCompleted(CompletedEvent<EnClient>)
连接、发送、关闭事件
public void SetCompleted(CompletedEvent<EnClient> Completed)Parameters
Completed CompletedEvent<EnClient>