BeardedManStudios.Network.TCPProcess.ReadBuffer C# (CSharp) Method

ReadBuffer() protected method

protected ReadBuffer ( NetworkStream stream ) : BMSByte
stream System.Net.Sockets.NetworkStream
return BMSByte
		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;
		}