Class ServerFrame
Namespace: Tool.Sockets.NetFrame
Assembly: Tool.Net.dll
封装的一个TCP框架(服务端)
public class ServerFrame : EnServerEventDriveInheritance
object ← EnServerEventDrive ← ServerFrame
Inherited Members
EnServerEventDrive.OnInterceptor(EnServer, bool), EnServerEventDrive.OnIsQueue(EnServer, bool), EnServerEventDrive.IsEvent(EnServer), EnServerEventDrive.IsQueue(EnServer), EnServerEventDrive.OpenAllEvent(), EnServerEventDrive.OpenAllQueue(), EnServerEventDrive.CloseAllEvent(), EnServerEventDrive.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
ServerFrame()
无参构造
public ServerFrame()ServerFrame(NetBufferSize)
初始化包
public ServerFrame(NetBufferSize bufferSize)Parameters
bufferSize NetBufferSize
收包规范
Properties
IsAllowRelay
表示服务器是否接受转发消息(默认接受)
public bool IsAllowRelay { get; init; }Property Value
IsClose
标识服务端连接是否关闭
public bool IsClose { get; }Property Value
IsThreadPool
是否使用线程池调度接收后的数据(允许使用者初始化时设置,消息是否有序获取) 默认 true 开启
public bool IsThreadPool { get; init; }Property Value
ListClient
已建立连接的集合 key:ip:port value:Socket
public IReadOnlyDictionary<UserKey, Socket> ListClient { get; }Property Value
IReadOnlyDictionary<UserKey, Socket>
Server
服务器创建时的信息
public UserKey Server { get; }Property Value
Methods
ClientClose(Ipv4Port)
关闭存在的连接用户
public bool ClientClose(Ipv4Port ipv4)Parameters
ipv4 Ipv4Port
IpV4
Returns
成功/失败
Close()
关闭服务器并断开所有连接的客户端
public void Close()Send(in Ipv4Port, ApiPacket)
同步发送消息
public NetResponse Send(in Ipv4Port key, ApiPacket api)Parameters
key Ipv4Port
发送人的IP
api ApiPacket
接口调用信息
Returns
SendAsync(Ipv4Port, ApiPacket)
异步发送消息
public ValueTask<NetResponse> SendAsync(Ipv4Port key, ApiPacket api)Parameters
key Ipv4Port
发送人的IP
api ApiPacket
接口调用信息
Returns
SetCompleted(CompletedEvent<EnServer>)
连接、发送、关闭事件
public void SetCompleted(CompletedEvent<EnServer> Completed)Parameters
Completed CompletedEvent<EnServer>
SetIpParser(IpParserEvent)
实现IP:Port解释器 (返回有效的IP:Port,返回空使用原值) 参数1:发起方信息空表示无发起方,参数2:接收方信息
public void SetIpParser(IpParserEvent IpParser)Parameters
IpParser IpParserEvent
StartAsync(int)
开始异步监听ip地址的端口
public Task StartAsync(int port)Parameters
port int
Returns
StartAsync(string, int)
开始异步监听ip地址的端口
public Task StartAsync(string ip, int port)Parameters
ip string
port int