private bool Receive(ref Result result, out byte[] data)
{
byte[] lenBuffer = new byte[4];
byte[] cmdBuffer = new byte[1];
data = null;
try
{
var stream = client.GetStream();
int read = stream.Read(lenBuffer, 0, 4);
if (read < 4) return false;
int len = ConvertToInt(lenBuffer);
if (len < 1) return false;
read = stream.Read(cmdBuffer, 0, 1);
if (read < 1) return false;
result = (Result)cmdBuffer[0];
--len;
int current = 0;
data = new byte[len];
while (current < len)
{
read = stream.Read(data, 0, data.Length);
if (read <= 0) return false;
current += read;
}
}
catch (Exception e)
{
Log.Write("Cought an exception during the Receive() method:" + e.ToString());
return false;
}
return true;
}