[英]Socket recv in c++
我的代码如下
char *inBuffer = new char[5];
int recvReturn = recv(Socket, inBuffer, sizeof(inBuffer) - 1, 0);
if (recvReturn <= 0)
{
m_manager->log("Socket receive error",HIGH_IMPORTANCE);
}
else
{
std::stringstream ss2;
ss2<<std::hex;
for(int i(0);i<5;++i)
ss2<<(int)inBuffer[i] << ' ';
m_manager->log(ss2.str(),HIGH_IMPORTANCE);
}
我的日志中的结果是
1 1 6 0 0
1 1 6上的值正确,但0 0错误。 我期望的是8,而不是00。代码中是否有错误?
我可以在您的代码中看到2个问题。
recvBuffer
和/或限制写入该字符的字符数。 0
是0x30
或48。因此ss2.str
可能会作为可打印的字符串而很奇怪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.