读取某段数据采用递归形式读取可以节约很多时间如下:
BOOL __stdcall TNT_RecvExpectSizeData(HANDLE handle, char *recvBuf, int expectRecvLen)
{
try
{
int recvedLen = expectRecvLen;
if (TNT_Recv(handle, recvBuf, &recvedLen))
{
if (recvedLen < expectRecvLen)
{
return TNT_RecvExpectSizeData(handle, recvBuf + recvedLen, expectRecvLen - recvedLen);
}
else
{
return TRUE;
}
}
}
catch (...)
{
}
return FALSE;
}
这个列子采用的递归控制机制很不错,有借鉴的地方。