예제 #1
0
 /// <summary>
 /// 数据包写入器
 /// </summary>
 /// <param name="codeId">消息报的id</param>
 internal PacketWriter(ushort codeId)
 {
     buffer = DogBuffer.GetFromPool32K();
     //  先预留2位用于存放消息id
     buffer.Length = ReceiveQueue.PacketLengthSize;
     Write(codeId);
 }
예제 #2
0
 /// <summary>
 /// 数据包写入器
 /// </summary>
 /// <param name="codeId">消息报的id</param>
 internal PacketWriter(ushort codeId)
 {
     buffer = DogBuffer.GetFromPool32K();
     //  先预留2位用于存放消息id
     buffer.Length = ReceiveQueue.PacketLengthSize;
     Write(codeId);
 }
예제 #3
0
 /// <summary>
 /// 资源释放
 /// </summary>
 public void Release()
 {
     if (buffer != null)
     {
         buffer.Release();
         buffer = null;
     }
 }
예제 #4
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);
        }
예제 #5
0
        /// <summary>
        /// 重新异步开始接受数据
        /// </summary>
        internal void SyncRecvData()
        {
            if (isClose || Socket == null || !Socket.Connected)
            {
                return;
            }

#if !UNITY_IPHONE
            lock (Socket)
#endif
            {
                var buff = DogBuffer.GetFromPool32K();
                RecvBuffer = buff;
                ReceiveEventArgs.SetBuffer(RecvBuffer.Bytes, 0, RecvBuffer.Bytes.Length);
                Socket.ReceiveAsync(ReceiveEventArgs);
            }
        }
예제 #6
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);
        }
예제 #7
0
 /// <summary>
 /// 资源释放
 /// </summary>
 public void Release()
 {
     if (buffer != null)
     {
         buffer.Release();
         buffer = null;
     }
 }