SocketClient.OnReceive C# (CSharp) Method

OnReceive() private method

接收到消息
private OnReceive ( byte bytes, int length ) : void
bytes byte
length int
return void
    private void OnReceive(byte[] bytes, int length)
    {
        mMemoryStream.Seek(0, SeekOrigin.End);
        mMemoryStream.Write(bytes, 0, length);
        //Reset to beginning
        mMemoryStream.Seek(0, SeekOrigin.Begin);
        while (RemainingBytes() > 2)
        {
            ushort messageLen = mBinaryReader.ReadUInt16();
            if (RemainingBytes() >= messageLen)
            {
                MemoryStream ms = new MemoryStream();
                BinaryWriter writer = new BinaryWriter(ms);
                writer.Write(mBinaryReader.ReadBytes(messageLen));
                ms.Seek(0, SeekOrigin.Begin);
                OnReceivedMessage(ms);
            }
            else
            {
                //Back up the position two bytes
                mMemoryStream.Position = mMemoryStream.Position - 2;
                break;
            }
        }
        //Create a new stream with any leftover bytes
        byte[] leftover = mBinaryReader.ReadBytes((int)RemainingBytes());
        mMemoryStream.SetLength(0);     //Clear
        mMemoryStream.Write(leftover, 0, leftover.Length);
    }