Exemple #1
0
        /// <summary>
        /// 设置网络消息码
        /// </summary>
        /// <param name="codeId"></param>
        public void SetNetCode(ushort codeId)
        {
            if (buffer != null)
            {
                buffer.Release();
            }

            buffer = DogBuffer.GetFromPool32K();
            //  先预留2位用于存放消息id
            buffer.Length = ReceiveQueue.PacketLengthSize;
            Write(codeId);
        }
        /// <summary>
        /// 关闭连接
        /// </summary>
        public void Close()
        {
            SendEventArgs.Completed    -= OnSendCompleted;
            ReceiveEventArgs.Completed -= OnRecvCompleted;
            ConnectEventArgs.Completed -= OnConnectCompleted;

            CloseSocket();

            if (RecvBuffer != null)
            {
                RecvBuffer.Release();
            }

            SendEventArgs    = null;
            ReceiveEventArgs = null;
            ConnectEventArgs = null;

            if (m_PendingBuffer.Count > 0)
            {
                foreach (var buff in m_PendingBuffer)
                {
                    buff.Release();
                }

                m_PendingBuffer.Clear();
            }
        }