首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

recv接受数据到rBuf不是从头开始解决办法

2012-09-14 
recv接受数据到rBuf不是从头开始char rBuf[TSIZE]memset(rBuf,0,TSIZE)if (recv(m_sock,rBuf,TSIZE,0)

recv接受数据到rBuf不是从头开始
char rBuf[TSIZE];
memset(rBuf,0,TSIZE);
if (recv(m_sock,rBuf,TSIZE,0) == SOCKET_ERROR)
{
return FALSE;
}
else
{
memcpy(&cmd,rBuf,TSIZE);
printf("接收数据成功\n");
}

为什么我收到的数据rBuf中,是从数组的第8个元素开始的,前面都是0,为什么不是从开头开始呢?
怎么样才能从头开始?

[解决办法]
recv(m_sock,rBuf,TSIZE,0);
你这个已经是从0开始了。
看看你的发送端发送的数据吧。
[解决办法]

探讨
recv(m_sock,rBuf,TSIZE,0);
你这个已经是从0开始了。
看看你的发送端发送的数据吧。

[解决办法]
发送端楼主可以断点调试下,接收端看代码没有问题
[解决办法]
recv(m_sock,rBuf,TSIZE,0);肯定是从rBuf开头第0位开始的。

你收到的数据前面都是0,可能是发送方返回的字符串前面有'\0'空字符,没有显式地显示出来,请仔细核对!
[解决办法]
memcpy 参数错误
[code=c/c++]
//memcpy(&cmd,rBuf,TSIZE);
memcpy(rBuf,&cmd,TSIZE);
[/code]


热点排行