Код нормально работает с 4-м соксом
hInternet = InternetOpen("UserAgent", INTERNET_OPEN_TYPE_PROXY, "socks=127.0.0.1:1080", NULL, 0);
hURL = InternetOpenUrl(hInternet, "http://google.com/",NULL, NULL, NULL, NULL);
result = InternetReadFile(hURL, &buffer, sizeof(buffer)-1, &bytesReaded);
cout << "result "<< result << endl << bytesReaded << "bytes readed " << buffer << endl;
---
Но если после InternetOpen.. добавить пару строк типа
result = InternetSetOption(hInternet,INTERNET_OPTION_PROXY_USERNAME,user,sizeof(user));
if (!result) cout << "Error #"<< GetLastError() << endl;
---
вывалится сообщение об ошибке #12018, которая является константой ERROR_INTERNET_INCORRECT_HANDLE_TYPE -- The type of handle supplied is incorrect for this operation.
Резюме:
Носки 4-го размера, устанавливаются InternetOpen("UserAgent", INTERNET_OPEN_TYPE_PROXY, "socks=address:port",...);
Носки пятого размера надеть я не смог. Предполагаю, что IE не совместим с ними, хотя это только предположение.
> Данную схему я тоже уже в MSDN видел. Комбинация "socks=" > была у меня первой. Авторизация на моём прокси не требуется > (он к IP привязан). Например, в Fire Fox я прописываю > только адрес и порт. Моя же программа не хочет работать. > > Ещё я в MSDN вычитал, что socks поддерживается библиотекой > WinInet только в том случае, если socsks поддерживается > Internet Explorer'ом. И ещё там говорится, что если > Internet Explorer поддерживает socks, то в системе должна > присутствовать библиотека Wsock32n.dll. > > SOCKS в Internet Explorer у меня работает, а вот библиотеки > такой нету, как это понимать?
|