18,356
社区成员
发帖
与我相关
我的任务
分享
OL msObj;
memset(&msObj,0,sizeof(OL));
strcpy(msObj.strName,m_csUserNameOrAddr);
msObj.iType=ONLINESTATION;
msObj.iSubType = 2;
int ret =theApp.m_skMainSocket.Send(&msObj,sizeof(msObj));
m_bsend =0;
if(ret == sizeof(OL))
{
m_bsend =1;//用来记录是否把内容发送到缓冲区
}
m_stime ++;//用来记录send执行的次数
unsigned char buf[10000];//无符号、有符号的有什么区别
iLen=Receive(buf,8,0);
int iLen1;
int iLen2;
iType=buf[0];
iSubType = buf[4];
MHD msContent1;
Message msContent;
OL msContent3;
if(buf[0]==BODY)//这里具有特殊性,其他地方不能这么写。
{
iLen1 = sizeof(MHD)-8;
iLen2 = sizeof(MHD)-8;
memset(&msContent1,0,sizeof(msContent1));
while(iLen1 > 0)
{
iLen = Receive(&buf[iLen2-iLen1+8], iLen1);
if (iLen > 0)
{
iLen1 = iLen1-iLen;
}
else
{
break;
}
}
memcpy(&msContent1,buf,sizeof(msContent1));
}
else if(buf[0]==ONLINESTATION)
{
iType=buf[0];
iSubType = buf[4];
iLen1 = sizeof(OL)-8;
iLen2 = sizeof(OL)-8;
memset(&msContent3,0,sizeof(msContent3));
while(iLen1 > 0)
{
iLen = Receive(&buf[iLen2-iLen1+8], iLen1);
if (iLen > 0)
{
iLen1 = iLen1-iLen;
}
else
{
break;
}
}
memcpy(&msContent3,buf,sizeof(msContent3));
}
else if(buf[0]==STATE)
{}
else
{
iLen1 = sizeof(Message)-8;
iLen2 = sizeof(Message)-8;
memset(&msContent,0,sizeof(msContent));
while(iLen1 > 0)
{
iLen = Receive(&buf[iLen2-iLen1+8], iLen1);
if (iLen > 0)
{
iLen1 = iLen1-iLen;
}
else
{
break;
}
}
memcpy(&msContent,buf,sizeof(msContent));
}