BeginBufferIndex() public method

Buffer의 위치를 0으로 변경하는 메소드
public BeginBufferIndex ( ) : void
return void
        public dynamic Decode(IChannel channel, PacketBuffer buffer)
        {
            buffer.BeginBufferIndex();
            if (buffer.AvailableBytes() < 1)
            {
                buffer.ResetBufferIndex();
                return null;
            }

            var data = new byte[buffer.AvailableBytes()];
            buffer.ReadBytes(data);

            string s = System.Text.Encoding.UTF8.GetString(data);
            int len = s.IndexOf('\n');
            if (len == -1)
            {
                buffer.ResetBufferIndex();
                return null;
            }
            s = s.Substring(0, len + 1);

            buffer.SetPosition(System.Text.Encoding.UTF8.GetByteCount(s));
            buffer.EndBufferIndex();

            return s;
        }
Beispiel #2
0
        public dynamic Decode(IChannel channel, PacketBuffer buffer)
        {
            buffer.BeginBufferIndex();
            if (buffer.AvailableBytes() < 1)
            {
                buffer.ResetBufferIndex();
                return null;
            }

            var data = new byte[buffer.AvailableBytes()];
            buffer.ReadBytes(data);
            buffer.EndBufferIndex();
            return data;
        }
        public void PacketBufferTest2()
        {
            PacketBuffer buffer = new PacketBuffer();
            buffer.Write(1);
            buffer.Write(0);
            buffer.Write(0);
            buffer.Write(5);

            buffer.BeginBufferIndex();
            uint m = 0;
            for (int i = 0; i < 4; i++)
                m += buffer.ReadUInt32();
            if (m != 6) { throw new Exception("PacketBuffer unji"); }
        }