/// <summary> /// 数据包写入器 /// </summary> /// <param name="codeId">消息报的id</param> internal PacketWriter(ushort codeId) { buffer = DogBuffer.GetFromPool32K(); // 先预留2位用于存放消息id buffer.Length = ReceiveQueue.PacketLengthSize; Write(codeId); }
/// <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> 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); } }