/// <summary> /// 构造函数,应该是内部的。由内部机制创建 /// </summary> /// <param name="socket">用户对应的 Socket</param> /// <param name="sendArgs">创建出来的发送用的SocketAsyncEventArgs(将来可以放到池里)</param> /// <param name="receiveArgs">创建出来的接收用的SocketAsyncEventArgs(将来可以放到池里)</param> /// <param name="receiveBufferSize">数据接收缓存大小</param> internal Token(Socket socket, SocketAsyncEventArgs sendArgs, SocketAsyncEventArgs receiveArgs, int receiveBufferSize) { this._tokenScket = socket; this.SendArgs = sendArgs; this.ReceiveArgs = receiveArgs; ReceiveBuffer = new byte[receiveBufferSize]; _sendQueue = new BytesQueue(int.MaxValue, MAX_BYTES_SIZE, 256); _receiveQueue = new BytesQueue(int.MaxValue, MAX_BYTES_SIZE, 256); _reserveQueuePacked = new BytesQueue(int.MaxValue, MAX_BYTES_SIZE, 256); LastMsgReceTickTime = DateTime.Now.Ticks; LastMsgSendTickTime = DateTime.Now.Ticks; //设置一下timeout socket.SendTimeout = 8 * 1000;//最长发送8秒超时 socket.ReceiveTimeout = 0; userObj = new UserObj(); }
/// <summary> /// 现在由于在客户端也添加了一个Token,用于在协议事件的时候方便统一逻辑,当初始化客户端的token的时候调用这个构造方法 /// </summary> internal Token() { userObj = new UserObj(); }