| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
-
- using System;
- using System.Net;
- using System.Net.Sockets;
- namespace Curtain.Net.Sockets.PLC
- {
- /// <summary>
- /// 服务端Session
- /// </summary>
- [Serializable]
- public class ServerSession
- {
- /// <summary>
- /// SessionID
- /// </summary>
- public string ID
- {
- get;
- private set;
- } = "S-" + Guid.NewGuid().ToString("N");
- [NonSerialized]
- private IPEndPoint _IPEndPoint = null;
- /// <summary>
- /// 此连接对象连接的远程客户端
- /// </summary>
- public IPEndPoint IPEndPoint
- {
- get
- {
- return _IPEndPoint;
- }
- internal set
- {
- _IPEndPoint = value;
- }
- }
- /// <summary>
- /// IP地址
- /// </summary>
- public IPAddress IPAddress
- {
- get
- {
- return _IPEndPoint?.Address;
- }
- }
- /// <summary>
- /// 服务端IP
- /// </summary>
- public string IP
- {
- get
- {
- return _IPEndPoint?.Address?.ToString();
- }
- }
- /// <summary>
- /// 服务端端口
- /// </summary>
- public int? Port
- {
- get
- {
- return _IPEndPoint?.Port;
- }
- }
- /// <summary>
- /// 挂起连接队列的最大长度
- /// </summary>
- public int Backlog
- {
- get;
- internal set;
- }
- [NonSerialized]
- private Socket _Socket = null;
- /// <summary>
- /// 传输数据的对象
- /// </summary>
- public Socket Socket
- {
- get
- {
- return _Socket;
- }
- internal set
- {
- _Socket = value;
- }
- }
- /// <summary>
- /// 清除Session
- /// </summary>
- public void Clear()
- {
- //IPAddress = null;
- Socket = null;
- }
- /// <summary>
- /// ToString
- /// </summary>
- /// <returns></returns>
- public override string ToString()
- {
- return $"[{_IPEndPoint}]:({ID})";
- }
- }
- /// <summary>
- /// 客户端Session
- /// </summary>
- [Serializable]
- public class ClientSession
- {
- /// <summary>
- /// SessionID
- /// </summary>
- public string ID
- {
- get;
- private set;
- } = "C-" + Guid.NewGuid().ToString("N");
- /// <summary>
- /// 服务端Session
- /// </summary>
- public ServerSession Server
- {
- get;
- internal set;
- }
- [NonSerialized]
- private Socket _socket = null;
- /// <summary>
- /// 传输数据的对象
- /// </summary>
- public Socket Socket
- {
- get
- {
- return _socket;
- }
- internal set
- {
- _socket = value;
- }
- }
- //internal SimpleHybirdLock HybirdLockSend
- //{
- // get; set;
- //}
- [NonSerialized]
- private IPEndPoint _IPEndPoint = null;
- /// <summary>
- /// 此连接对象连接的远程客户端
- /// </summary>
- public IPEndPoint IPEndPoint
- {
- get
- {
- return _IPEndPoint;
- }
- internal set
- {
- _IPEndPoint = value;
- }
- }
- /// <summary>
- /// IP地址
- /// </summary>
- public IPAddress IPAddress
- {
- get
- {
- return _IPEndPoint?.Address;
- }
- }
- /// <summary>
- /// 客户端IP
- /// </summary>
- public string IP
- {
- get
- {
- return _IPEndPoint?.Address?.ToString();
- }
- }
- /// <summary>
- /// 客户端端口
- /// </summary>
- public int? Port
- {
- get
- {
- return _IPEndPoint?.Port;
- }
- }
- ///// <summary>
- ///// 远程对象的别名
- ///// </summary>
- //public string LoginAlias
- //{
- // get; set;
- //}
- ///// <summary>
- ///// 心跳验证的时间点
- ///// </summary>
- //public DateTime HeartTime { get; set; } = DateTime.Now;
- ///// <summary>
- ///// 客户端的类型
- ///// </summary>
- //public string ClientType
- //{
- // get; set;
- //}
- /// <summary>
- /// 清除Session
- /// </summary>
- public void Clear()
- {
- Server = null;
- Socket = null;
- }
- /// <summary>
- /// ToString
- /// </summary>
- /// <returns></returns>
- public override string ToString()
- {
- return $"[{_IPEndPoint}]:({ID})";
- }
- }
- /// <summary>
- /// 数据接收Session
- /// </summary>
- [Serializable]
- public class ReceiveSession
- {
- /// <summary>
- /// SessionID
- /// </summary>
- public string ID
- {
- get;
- private set;
- } = "R-" + Guid.NewGuid().ToString("N");
- /// <summary>
- /// 服务端Socket
- /// </summary>
- public SocketServer ServerSocket
- {
- get;
- internal set;
- }
- /// <summary>
- /// 客户端Session
- /// </summary>
- public ClientSession Client
- {
- get;
- internal set;
- }
- /// <summary>
- /// 响应报文-头
- /// </summary>
- public string Head
- {
- get;
- set;
- }
- /// <summary>
- /// 响应报文-文本
- /// </summary>
- public string Content
- {
- get;
- set;
- }
- /// <summary>
- /// 响应报文-头
- /// </summary>
- [NonSerialized]
- public byte[] HeadBytes;
- /// <summary>
- /// 响应报文-文本
- /// </summary>
- [NonSerialized]
- public byte[] ContentBytes;
- /// <summary>
- /// 报文命令
- /// </summary>
- public string Command
- {
- get;
- set;
- }
- /// <summary>
- /// 已接收数据长度
- /// </summary>
- public int Offset
- {
- get; set;
- }
- /// <summary>
- /// 总接收数据长度
- /// </summary>
- public int Size
- {
- get; set;
- }
- /// <summary>
- /// 清除Session
- /// </summary>
- public void Clear()
- {
- }
- /// <summary>
- /// 回复消息
- /// </summary>
- /// <param name="message"></param>
- public virtual void ReturnMessage(string message)
- {
- ServerSocket?.ReturnMessage(this, message);
- }
- /// <summary>
- /// ToString
- /// </summary>
- /// <returns></returns>
- public override string ToString()
- {
- return $"Command[{Command}]:Head[{Head}]:Content[{Content}]:Client[{Client}]";
- }
- }
- }
|