protected BMSByte ReadBuffer(NetworkStream stream)
{
int count = 0;
while (stream.DataAvailable)
{
previousSize = backBuffer.Size;
backBuffer.SetSize(backBuffer.Size + 1024);
count += stream.Read(backBuffer.byteArr, previousSize, 1024);
backBuffer.SetSize(previousSize + count);
}
int size = BitConverter.ToInt32(backBuffer.byteArr, backBuffer.StartIndex());
readBuffer.Clear();
if (count == 0)
return readBuffer;
readBuffer.BlockCopy(backBuffer.byteArr, backBuffer.StartIndex(4), size);
if (readBuffer.Size + 4 < backBuffer.Size)
backBuffer.RemoveStart(size + 4);
else
backBuffer.Clear();
return readBuffer;
}