【发布时间】:2014-03-25 08:11:36
【问题描述】:
我已经在网上搜索过,但没有一个对我有帮助。这是导致错误的代码:已编辑以包含更多代码。给我 Visual Studio 2013 中的 R6010 调试错误。
do
{
rLength = recv(s1, rBuf, 1, 0);
if (rLength > 0)
{
rData += rBuf[0];
if (rBuf[0] == nByte[0])
{
switch (rData[0])
{
case 'C':
uid = rData.substr(1, 3);
statSend = "00" + uid + "ST" + userinfo;
charStat = statSend.c_str();
lLength = send(s1, charStat, strlen(charStat) + 1, 0);
break;
case 'M':
if (rData[4] == 'C' && rData[5] == 'H');
{
size_t start = 6;
size_t end = rData.find("!@#$!@#&!@#*LlL");
size_t start2 = rData.find("*LlL");
size_t end2 = rData.find(";");
cout << rData.substr(start2, end2 - start2) << ":" << rData.substr(start, end - start) << endl;
}
break;
}
rData = "";
}
}
} while (rLength > 0);
【问题讨论】:
-
你遇到了什么错误?
-
调试错误 R6010 - abort() 已被调用
-
嗯,所以这是,我从 R6 开始的错误消息中猜测...发生在 Visual Studio 中?你并没有给我们太多的背景信息。
rData是什么? INrData是什么?是否有可能提出一个可以由其他人运行的小而完整的代码示例? -
这是发生在视觉工作室是的。我正在制作一个winsock 应用程序,rData 是所有接收到的数据。我将在我的主帖中包含完整的代码。
-
rData 以什么开头?如果它是一个空白字符串,那么如果你得到的第一个字节恰好匹配 nByte[0] (不管那是什么......)那么我真的认为万一'M'你跑完了单字节 rData ,试图访问 rData[4]。
标签: c++