socket recv循环接受数据的问题

#define BUF_SIZE 2048
int cc=0;
char* kk = new char[4024 * 3036 * 3];
while (1){
nCount = recv(sock, kk + cc, BUF_SIZE, 0);

         cc += nCount;


         cout << nCount << endl;

         if (nCount < BUF_SIZE)
             break;

     }
    在使用recv对缓存中的数据进行循环接受的时候
    如果删除 cout << nCount << endl; 这一行会导致接受的数据错误。
    这是什么原因造成的,希望大神指点。
    是因为recv接收数据不可以太快吗?

recv将网络数据写入缓存,不存在快慢问题。如果缓存大于接收到的数据,结果应该是正确的。要从其它方面找原因!