18,356
社区成员
发帖
与我相关
我的任务
分享
char *buf = NULL;
int index =0, pkt_len = 8 * 1024 * 1024;
// 省略指针检查
buf = new char[pkt_len];
memset(buf, 0, pkt_len);
while (TRUE)
{
int len = recv(buf + index, pkt_len - index); // 简化的接收API,仅仅为了说明流程
index += len;
if (index >= x) // x为你设定的或者通过协议头所获取的包长度
{
// do anything
// 你可以在这里做协议处理,也可以转到另一个缓冲区中通过worker来做协议处理
}
}
以上步骤完全满足你所设定的场景要求