Re[2]: Connect to proxy
От: unkn  
Дата: 14.08.03 10:24
Оценка:
Здравствуйте, konst, Вы писали:

K>Какой прокси?

K>Если обычный локальный http-прокси, то зная ип+порт коннектишься к нему, дальше работает как без прокси. WinInet сама с таким прокси разбирается.

Если можно, подробней, пожалуйста. С примером кода. Как коннектиться к http-прокси?
Я пытался это делать примерно так (убрал проверку ошибок).

...

SOCKET ProxySocket = socket(AF_INET, SOCK_STREAM, 0);

sockaddr_in ProxyAddr;
::ZeroMemory(&ProxyAddr, sizeof(ProxyAddr));
ProxyAddr.sin_family = AF_INET;
ProxyAddr.sin_addr.S_un.S_addr = ::inet_addr(”192.168.0.222”);//адрес прокси сервера
ProxyAddr.sin_port = ::htons(80);//порт прокси сервера

//присоединяемся к прокси
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 завершается, не дождавшись ни какого ответа от прокси. Что не так? На прямую без прокси работает всё нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.