所以我得到套接字通信,我得到正确的消息...但是,当我尝试从接收缓冲区中提取它...它不工作。我的代码看起来是这样的:通过套接字接收的数据不能使用C++
void CClientSocket::OnReceive(int nErrorCode)
{
char buff[1000];
int ibuf = Receive(buff,sizeof(buff));
buff[sizeof(buff)-1] ='\0';
CSocket::OnReceive(nErrorCode);
}
当我在调试运行,浅黄色的价值包含正确的消息......有一堆随机字符填充数组的未使用部分一起。然而,我不能使用这些数据......如果我尝试转换为CString,或者甚至将字符传输到不同的数组......没有任何工作。我很困惑,我真的不知道该怎么做。
让我知道你是否需要更多的信息,或者如果我不清楚任何方式。
编辑:一些代码,我试图提取数据
CString string;
string = CString(buff);
和
char *msg;
msg = new char[ibuf]
for(int i = 0; i < ibuf; i++){
msg[i] = (char)buff[i];
}
编辑:澄清 时,我说: '没有什么作品' 我的意思是,当我试图转换它,结果是和空的CString或空char等...没有错误。
您可以发布相关的代码吗?不工作?即:当你尝试“转换为CString”? – netcoder 2012-02-23 16:09:22
这可能是他们发明'std :: string'的原因:D – Griwes 2012-02-23 16:12:01
我们是程序员,能够理解错误信息。不要只说“没有用”。显然,如果你正确地编写你的代码,某些事情会发挥作用。 – 2012-02-23 16:12:51