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);肯定是从rBuf开头第0位开始的。
你收到的数据前面都是0,可能是发送方返回的字符串前面有'\0'空字符,没有显式地显示出来,请仔细核对!
[解决办法]
memcpy 参数错误
[code=c/c++]
//memcpy(&cmd,rBuf,TSIZE);
memcpy(rBuf,&cmd,TSIZE);
[/code]