对方发给我的包分两种类型,一种是命令,一种是数据,二者的长度是不同的,命令只有一个数据包(<1000字节,长度不定),数据可能分多个包。现在只是在发送的时候在头部加了标记,来区分命令和数据(如果是数据,头部还包含了总包数/当前包序号)~
问题是:在接收线程中,如何知道应该接收多少个字节?即不知道来的是命令还是数据,
while(true)
{
sock.Recvie(buf,num_bytes,SOCK_DGRM); // 怎么知道这里num_bytes该接多少呢?正在处理的时候,来新包怎办?
// 判断头,根据类型取出对应数据,再做其他处理...
}
没怎么接触过,求指点~思路、链接、代码片段~