|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2016, 10:55 | #1 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
wininet или socket одно соединение, несколько запросов
Добрый день.
Мне необходимо было читать кое-какую инфу со страничек html и я использовал wininet, писал на С++. InternetOpen и InternetConnect держали постоянное соединение, шли GET запросы через связку HttpOpenRequest HttpSendRequest и чтение в цикле InternetReadFile. Так как мне не нужна была вся инфа со странички, то я на определенной итерации прекращал чтение, и несколько позже слал новый запрос, используя существующее соединение. Все ОК. И вот подобное понадобилось реализовать на сокетах. И, я, видимо находясь в плену предыдушей модели, попал в ступор, тем более что с сокетами знакомство поверхностное. Как на сокетах , используя одно соединение, послать следующий запрос не дочитывая до конца recv ответ предыдущего запроса? У меня, во всяком случае, происходит вот что. Код:
Мож кто что-нить подскажет. |
08.10.2016, 11:51 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а никак, вы обязаны дочитать.
просто WinInet это делает за вас. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
08.10.2016, 12:04 | #3 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
То есть InternetReadFile - фикция? И читает из уже закачанного кеша? Я конечно предполагал, но наивно думал что ошибаюсь.
Итак, это точно? |
08.10.2016, 13:23 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
какая фикция, вы о чем?
он читает из соединения, но скрывает от вас детали оного. если надо дочитать старые данные, он это сделает без вашего участия. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
08.10.2016, 13:52 | #5 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
Как он может дочитать из соединения, если предположим, до окончательного чтения произошел второй запрос (асинхронно).
Получается, во втором запросе сначала кешируются данные недочитанного первого. |
08.10.2016, 14:18 | #6 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
08.10.2016, 14:23 | #7 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
Да, я понял, спасибо большое. Помогли разобраться.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одно значение на несколько input | L6go1as | HTML и CSS | 4 | 27.03.2015 13:39 |
Соединение 2-х запросов | moroz11 | SQL, базы данных | 3 | 03.06.2013 12:58 |
несколько запросов в БД | SkrudjMakdak | PHP | 9 | 12.08.2011 11:38 |
Несколько запросов к БД | artemavd | БД в Delphi | 8 | 15.09.2010 08:42 |
Одно Popupmunu на несколько TollButons | akaTemporary | Общие вопросы Delphi | 11 | 21.01.2010 13:59 |