using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; namespace HslCommunication.Core.Net { /// /// 网络会话信息 /// public class AppSession { #region Constructor /// /// 实例化一个构造方法 /// public AppSession() { ClientUniqueID = Guid.NewGuid( ).ToString( "N" ); HybirdLockSend = new SimpleHybirdLock( ); } #endregion /// /// 传输数据的对象 /// internal Socket WorkSocket { get; set; } internal SimpleHybirdLock HybirdLockSend { get; set; } /// /// IP地址 /// public string IpAddress { get; internal set; } /// /// 此连接对象连接的远程客户端 /// public IPEndPoint IpEndPoint { get; internal set; } /// /// 远程对象的别名 /// public string LoginAlias { get; set; } /// /// 心跳验证的时间点 /// public DateTime HeartTime { get; set; } = DateTime.Now; /// /// 客户端的类型 /// public string ClientType { get; set; } /// /// 客户端唯一的标识 /// public string ClientUniqueID { get; private set; } /// /// UDP通信中的远程端 /// internal EndPoint UdpEndPoint = null; /// /// 指令头缓存 /// internal byte[] BytesHead { get; set; } = new byte[HslProtocol.HeadByteLength]; /// /// 已经接收的指令头长度 /// internal int AlreadyReceivedHead { get; set; } /// /// 数据内容缓存 /// internal byte[] BytesContent { get; set; } /// /// 已经接收的数据内容长度 /// internal int AlreadyReceivedContent { get; set; } /// /// 清除本次的接收内容 /// internal void Clear( ) { BytesHead = new byte[HslProtocol.HeadByteLength]; AlreadyReceivedHead = 0; BytesContent = null; AlreadyReceivedContent = 0; } #region Object Override /// /// 返回表示当前对象的字符串,以IP,端口,客户端名称组成 /// /// 字符串数据 public override string ToString() { return $"[{IpEndPoint}] [{LoginAlias}]"; } #endregion } }