svrrcvlen=svrsocket->Receive(svrrcvbuf,2048);
CString str;
str = svrrcvbuf;
AfxMessageBox(str);我收到内容放到svrrcvbuf现在想显示出来成16进制的数据,但转换的不对,如何才能显示出来收到的内容!(肯定有数据因为svrrcvlen>0了!)
CString str;
str = svrrcvbuf;
AfxMessageBox(str);我收到内容放到svrrcvbuf现在想显示出来成16进制的数据,但转换的不对,如何才能显示出来收到的内容!(肯定有数据因为svrrcvlen>0了!)
for(int i = 0; i < str.GetLength(); i ++)
{
sprintf(&pHex[i * 2], "%x", str.GetAt(i));
}
AfxMessageBox(pHex);
delete []pHex;
CString strRcv;for(int i=0; i<strRcv.GetLength(); i++)
{
strTemp.Format(_T("%02X"), strRcv.GetAt(i);
strMsg += strTemp;
}AfxMessageBox(strMsg);
"妄葺葺葺葺葺u"第二种方法什么也不出现?
void CIsmgDlg::SVRReceiveData(SVRSocket *svrsocket)
{
svrrcvlen=svrsocket->Receive(svrrcvbuf,2048);
//这里执行上面两种方法!
}
这里svrrcvbuf它的值为char[],我直接负的cstring str=svrrcvbuf;了!
但不正确显示,当执行完上面这句话,应该是有数据在这里面了!
不知是哪里问题!
//CString str;
//str = svrrcvbuf;
char *pHex = new char[str.GetLength() * 2 + 1];
for(int i = 0; i < svrrcvlen; i ++)
{
sprintf(&pHex[i * 2], "%x", svrrcvbuf[i]);
}
AfxMessageBox(pHex);
delete []pHex;//AfxMessageBox(str);
//CString str;
//str = svrrcvbuf;
char *pHex = new char[svrrcvlen* 2 + 1];
for(int i = 0; i < svrrcvlen; i ++)
{
sprintf(&pHex[i * 2], "%x", svrrcvbuf[i]);
}
AfxMessageBox(pHex);
delete []pHex;//AfxMessageBox(str);
发过来的数据用结构接收时还可以得到想要的数据
command_id = ntohl(CMPPData->head.command_id);
这个command_id 是可以判断出来的!
CString strRcv;
strRcv = svrrcvbuf;
afxmessagebox(strrcv);
这样什么也没有,是不是不应该