while (bytesTransferred > 0)
{
int left;
int offsetAcc = offset;
TCommandInfo commandInfo;
commandInfo = FindCommand(e.Buffer, offset, bytesTransferred, true, out left);
offsetAcc = offset + (bytesTransferred - left);
while(left > 0)
{
commandInfo = FindCommand(e.Buffer, offsetAcc, left, true, out left);
offsetAcc = offset + (bytesTransferred - left);
}
if (IsClosed)
return;
if (commandInfo == null)
break;
try
{
ExecuteCommand(commandInfo);
}
catch (Exception exc)
{
AppServer.Logger.LogError(this, exc);
HandleExceptionalError(exc);
}
if (left <= 0)
break;
bytesTransferred = left;
offset = e.Offset + e.BytesTransferred - left;
}