C++ 忽略通过HTTP GET C+;接收的字符缓冲区中的转义字符+;
我正在发送从网页获取图像的请求。 我用C++和WiSu套和TCP HTTP获取请求。 我收到我的字符缓冲区中的所有信息,但当我将其流式传输到文件或字符串时,它非常短,因为其中有字符串终止符。 处理转义字符的最佳/最有效方法是什么 提前谢谢 编辑: 流出量(“温度jpg”)C++ 忽略通过HTTP GET C+;接收的字符缓冲区中的转义字符+;,c++,string,sockets,char,escaping,C++,String,Sockets,Char,Escaping,我正在发送从网页获取图像的请求。 我用C++和WiSu套和TCP HTTP获取请求。 我收到我的字符缓冲区中的所有信息,但当我将其流式传输到文件或字符串时,它非常短,因为其中有字符串终止符。 处理转义字符的最佳/最有效方法是什么 提前谢谢 编辑: 流出量(“温度jpg”) //m_已接收。保留(STRINGBUFFERSIZE); char rBuffer[BUFFERSIZE]; int readSize=0; int totalSize=0; 做 { 打印(“重置缓冲区”); 零内存(rBu
//m_已接收。保留(STRINGBUFFERSIZE);
char rBuffer[BUFFERSIZE];
int readSize=0;
int totalSize=0;
做
{
打印(“重置缓冲区”);
零内存(rBuffer,sizeof(rBuffer));
打印(“接收…”);
readSize=recv(socket,rBuffer,sizeof(rBuffer),0);
PRINT(“Received”好的,所以我通过简单地将char缓冲区二进制文件写入我的文件来修复它。应该早就想到这一点
//m_Received.reserve(STRINGBUFFERSIZE);
char rBuffer[BUFFERSIZE];
int readSize = 0;
int totalSize = 0;
do
{
PRINT("Reset buffer");
ZeroMemory(rBuffer, sizeof(rBuffer));
PRINT("Receiving...");
readSize = recv(socket, rBuffer, sizeof(rBuffer), 0);
PRINT("Received " << readSize << " bytes...");
if (readSize > 0)
{
totalSize += readSize;
//m_Received.append(rBuffer);
for (int i = 0; i < readSize; ++i)
{
out << rBuffer[i];
}
if (readSize < BUFFERSIZE)
{
PRINT("Stopping receiving...");
break;
}
}
else if (readSize == -1)
throw SocketError("ErrorReceiving", readSize);
} while (readSize > 0);