using System; namespace Curtain.Net.Sockets.PLC { /// /// 服务端事件消息类型 /// [Flags] public enum ServerMessageType { /// /// 错误异常 /// Error = 1, /// /// 警告 /// Warning = 2, /// /// 跟踪 /// Trace = 4, /// /// 调试 /// Debug = 8, } /// /// 服务端消息事件 /// /// /// public delegate void ServerMessageEventHandler(object sender, ServerMessageEventArgs e); /// /// 服务端消息事件参数 /// [Serializable] public sealed class ServerMessageEventArgs : EventArgs { /// /// 消息类型 /// public ServerMessageType Type { get; internal set; } /// /// Socket客户端 /// public ClientSession Client { get; internal set; } /// /// Socket服务端 /// public ServerSession Server { get; internal set; } /// /// 消息代码 /// public string Code { get; internal set; } /// /// 消息内容 /// public string Message { get; internal set; } /// /// 系统异常信息 /// public Exception Exception { get; internal set; } /// /// 服务端消息事件参数 /// public ServerMessageEventArgs() { } /// /// ToString /// /// public override string ToString() { return $"{{Code:{Code},Message:{Message},Type:{Type},Client:{Client},Server:{Server},Exception:{Exception} }}"; } } }