通过HTTP获得C ,忽略Char缓冲区中的逃生字符

Ignoring escape characters in a char buffer received through HTTP GET C++

本文关键字:缓冲区 逃生 字符 Char 忽略 HTTP 获得 通过      更新时间:2023-10-16

我正在发送一个请求,以从网页获取图像。我将C 与WinSocket和TCP HTTP获取请求一起使用。我在Char缓冲区中收到所有信息,但是当我将其流式传输到文件或字符串时,它很短,因为其中有字符串终结器。处理逃生角色的最佳/最有效方法是什么?

预先感谢。

编辑: ofstream out(" temp.jpg");

    //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);

即使将每个角色分别放在每个角色时,我也会与原始图像有很小的不同,这会导致腐败。

好的,所以我只需将char Buffer二进制文件写入文件即可修复。应该早点想到。