喜欢猫的咸鱼 2020-07-17 20:22 采纳率: 0%
浏览 809

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接收数据不可以太快吗?
  • 写回答

1条回答 默认 最新

  • wlj1234 2020-07-20 14:12
    关注

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

    评论

报告相同问题?