Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

контроль (учет) трафика WinInet [D7, WinXP]


Dmitriy ©   (2010-05-19 10:50:00) 

Здравствуйте уважаемые мастера!
Есть необходимость в вашей помощи! Встал вопрос: а можно ли как-то учитывать трафик во время отправки запроса на сервер и получения от него ответа?
Задаю такой вопрос вот почему: для отправки на сервер использую функцию HttpSendRequest. Так вот эта функция посылает запрос и видимо получет ответ сервера, т.к. после ее выплнения можно прочитать заголовки, а сколько трафика истрачено неизвестно.


Сергей М.   (2010-05-19 15:24:00) [1]


> Dmitriy


WinInet не даст актуальных данных о трафике, особенно если дело касается биллинга, ибо

- доступны данные только о прикладном трафике
- возможная работа через HTTP-прокси вносит свои коррективы в реальный прикладной трафик


Rouse_   (2010-05-19 14:25:00) [2]

Только исходящие, т.к. входящих без вызова нет и быть не может.


Dmitriy   (2010-05-19 14:22:00) [3]

А всё таки, можно ли получить заголовки для отправки ДО вызова HttpSendRequest?


Rouse_   (2010-05-19 13:11:00) [4]

Второй вызов делай без модификатора HTTP_QUERY_FLAG_REQUEST_HEADERS - ибо именно он отвечает за отображение исходящего


Dmitriy   (2010-05-19 13:09:00) [5]


> До нее он возвращает весь запрос который уйдет на сервер,
>  он и будет твоим исходящим трафиком который тебе нужно
> посчитать

Допустим,может так оно и должно быть в принципе, но я попробовал вызвать HttpQueryInfo с этим флагами до HttpSendRequest и она мне выдала, что-то типа POST 'название скрипта' HTTP/1.1, однако уже после HttpSendRequest возращает именно 'весь запрос который должен уйти на сервер'. Может я что не так делаю?
Функцию вызыва следующим образом:

//bufferLength,index:cardinal;
//buffer:array [0..1204] of char;
bufferLength := SizeOf(buffer);
index := 0;
rs := HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF or HTTP_QUERY_FLAG_REQUEST_HEADERS, @buffer, bufferLength, index);


Rouse_   (2010-05-19 12:50:00) [6]

До нее он возвращает весь запрос который уйдет на сервер, он и будет твоим исходящим трафиком который тебе нужно посчитать. После нее он отдаст тебе то что вернул сервер - это будет твой входящий трафик. Суммируй и будет тебе счастье.


Dmitriy   (2010-05-19 12:25:00) [7]


> Смотри в сторону HttpQueryInfo и флагах HTTP_QUERY_RAW_HEADERS_CRLF
> + модификатор HTTP_QUERY_FLAG_REQUEST_HEADERS

Прошу прощения, но в каком смысле?
Ведь почему-то HttpQueryInfo возвращает результат только после выполнения функции HttpSendRequest, а не до неё или возвращает не то, что нужно. А мне желательно учитывать трафик во время выполнения самой функции. Такое в принципе возможно?


Rouse_   (2010-05-19 11:11:00) [8]

Смотри в сторону HttpQueryInfo и флагах HTTP_QUERY_RAW_HEADERS_CRLF + модификатор HTTP_QUERY_FLAG_REQUEST_HEADERS


Наверх

Титульная страница Поиск, карта сайта Написать письмо