wininet и получение сокета
От: Аноним  
Дата: 21.07.13 00:01
Оценка:
всем привет, у меня следующий вопрос:
у меня уже есть запрос к http/https серверу и HINTERNET от InternetConnect (т.е. я уже указал к какому серверу подключится).
Теперь вопрос — как получить сокет или как можно послать уже готовый запрос Internet функциями?
Re: wininet и получение сокета
От: Pasha1st  
Дата: 21.07.13 16:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>всем привет, у меня следующий вопрос:

А>у меня уже есть запрос к http/https серверу и HINTERNET от InternetConnect (т.е. я уже указал к какому серверу подключится).
А>Теперь вопрос — как получить сокет или как можно послать уже готовый запрос Internet функциями?

HTTPOpenRequest
InternetSetOption
HTTPSendRequest
Re[2]: wininet и получение сокета
От: Аноним  
Дата: 21.07.13 16:34
Оценка:
Здравствуйте, Pasha1st, Вы писали:

P>HTTPOpenRequest

P>InternetSetOption
P>HTTPSendRequest

не понял, у меня же нету урлы для того чтобы сделать HTTPOpenRequest, у меня есть сервер и порт. Урл уже в запросе (парсить не вариант). И чем мне поможет InternetSetOption?
Re: wininet и получение сокета
От: x64 Россия http://x64blog.name
Дата: 22.07.13 16:01
Оценка:
А>...как получить сокет...

Функция InternetQueryOption(), код параметра INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO, но начиная с Windows 7 работать не будет. А сокетный адрес можно ловить в InternetStatusCallback() перед InternetConnect(), код INTERNET_STATUS_CONNECTED_TO_SERVER, в параметре lpvStatusInformation будет структура SOCKADDR, которую следует привести к SOCKADDR_IN. Других вариантов не знаю, в WinHttp тоже ничего нет на эту тему. Боюсь, что тебе нужны самые обычные сокеты, а совсем не WinINet.

А>...или как можно послать уже готовый запрос Internet функциями?


Никак.
JID: x64j@jabber.ru
Re[3]: wininet и получение сокета
От: Pasha1st  
Дата: 24.07.13 10:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Pasha1st, Вы писали:


P>>HTTPOpenRequest

P>>InternetSetOption
P>>HTTPSendRequest

А>не понял, у меня же нету урлы для того чтобы сделать HTTPOpenRequest, у меня есть сервер и порт. Урл уже в запросе (парсить не вариант). И чем мне поможет InternetSetOption?

Смысл WinInet/WinHTTP — отправить запрос, не заморачиваясь с прокси, авторизацией и https если требуется. Если всего этого не требуется и есть готовый запрос — то можешь его отправить просто через сокет. Но если же требуется именно WinInet — тогда придется из запроса вытащить url — не так это и сложно.

InternetSetOption потребуется как раз когда окажется что нужен HTTPS, авторизация на прокси и т.д.
Re[2]: wininet и получение сокета
От: John1979  
Дата: 22.09.13 12:50
Оценка:
Здравствуйте, x64, Вы писали:

x64>Функция InternetQueryOption(), код параметра INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO, но начиная с Windows 7 работать не будет. А сокетный адрес можно ловить в InternetStatusCallback() перед InternetConnect(), код INTERNET_STATUS_CONNECTED_TO_SERVER, в параметре lpvStatusInformation будет структура SOCKADDR, которую следует привести к SOCKADDR_IN. Других вариантов не знаю, в WinHttp тоже ничего нет на эту тему.


Вопреки утверждению
msdn> INTERNET_STATUS_CONNECTING_TO_SERVER Connecting to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
в lpvStatusInformation содержится стринг с ip адресом сервера.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.