Я пишу прокси-сервер, использующий класс 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();
}