`
raojl
  • 浏览: 202875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

巧用串指针值拷贝解析不定长网络消息字节流

阅读更多
//1代表整形,0是串
int UseAble[100] = {1,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,0,
1,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
void CutStrFromBody(char* buffer,int Size)
{
int i = 0;
while(i++ < 100)
{

if(UseAble[i])//if integer
{
long templong;
Size -= 4;
memcpy(&templong,buffer ,Size);
templong = ntohl(templong);
                        memcpy(buffer,buffe r+ 4 ,Size);
}
else //else string
{
CString tempStr = buffer;//这就是巧妙之处
Size -= (tempStr.Length() + 1);
memcpy(buffer,buffer + tempStr.Length() + 1,Size);
}
i++;
}
}
2
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics