Какой прокси?
Если обычный локальный http-прокси, то зная ип+порт коннектишься к нему, дальше работает как без прокси. WinInet сама с таким прокси разбирается.
Здравствуйте, konst, Вы писали:
K>Какой прокси? K>Если обычный локальный http-прокси, то зная ип+порт коннектишься к нему, дальше работает как без прокси. WinInet сама с таким прокси разбирается.
Если можно, подробней, пожалуйста. С примером кода. Как коннектиться к http-прокси?
Я пытался это делать примерно так (убрал проверку ошибок).
//присоединяемся к прокси
connect(ProxySocket, (sockaddr*) &ProxyAddr, sizeof(ProxyAddr));
//Посылаем запрос на соединение с моим сервером.
char request[] = “CONNECT 213.87.11.xxx:5678 HTTP/1.0\r\n”
send(ProxySocket, request, sizeof(OutBuffer), 0);
//Ждём ответа от прокси об установке соединения с моим сервером
char InBuffer[512];
int ActualLength = 0;
ActualLength = recv(ProxySocket, InBuffer, sizeof(InBuffer), 0);
...
Через 2 минуты (истекает таймаут) фун. recv завершается, не дождавшись ни какого ответа от прокси. Что не так? На прямую без прокси работает всё нормально.
Странно, делаю всё точно также (только сокет асинхронный) -- работает. Вот только CONNECT слать не обязательно, я не понял точно, зачем этот коннект нужен, наверное, только для HTTPS прокси, просто HTTP оно и не зачем, а апачи в роли прокси на такой запрос ошибку возвращал вообще...