Прокси-сервер Csocket (HTTP) не работает загрузка образа? - PullRequest
0 голосов
/ 28 мая 2019

Я пишу прокси-сервер, использующий класс Csocket, я использую браузер, чтобы установить прокси на локальный хост, со страницей, не содержащей изображений, как example.com, это нормально. Но на странице, содержащей изображение, она просто загружает HTML-контент, а не загружает изображение.

CSocket connector;
        if (server.Accept(connector))
        {
            cout << "\nDConnected!!!";
            char s[10000] = { NULL };
            // receive from browser
            connector.Receive(s, 10000, 0);
            cout << s << endl;
            char host[50] = "";
            // get host name
            for (int i = 11; s[i] != '/'; i++)
            {
                host[i-11] = s[i];
            }
            //
            // get ip
            char* ip = get_ip(host);
            cout << ip<<endl;
            // send request to destination
            CSocket client;
            client.Create();
            // connet to remote server
            if (client.Connect(convertCharArrayToLPCWSTR(ip), PORT) != FALSE)
            {
                cout << "\nResponse:"<<endl;
                char buff[BUFF_SIZE+1] = {NULL};
                char path[] = "";
                char request[1000] = { 0 };
                cout << request << endl;
                sprintf(request,"GET /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: Mozilla/5.0\r\nConnection: close\r\n\r\n",path,host);
                client.Send(request, strlen(request), 0);
                // get reveive content respon from destination server
                memset(buff, 0, BUFF_SIZE);
                int size;
                while ((size = client.Receive((char*)buff, BUFF_SIZE, 0)) > 0)
                {
                    // send back to client
                    connector.Send((char*)buff, size, 0);
                    //memset(buff, 0, size);
                }
                if (size <= 0)
                {
                    cout << "Error receiving data";
                }
                client.Close();
            }
        }
        connector.Close();
        server.Close();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...