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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置