![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
![]()
Добрый день.
Мне необходимо было читать кое-какую инфу со страничек html и я использовал wininet, писал на С++. InternetOpen и InternetConnect держали постоянное соединение, шли GET запросы через связку HttpOpenRequest HttpSendRequest и чтение в цикле InternetReadFile. Так как мне не нужна была вся инфа со странички, то я на определенной итерации прекращал чтение, и несколько позже слал новый запрос, используя существующее соединение. Все ОК. И вот подобное понадобилось реализовать на сокетах. И, я, видимо находясь в плену предыдушей модели, попал в ступор, тем более что с сокетами знакомство поверхностное. Как на сокетах , используя одно соединение, послать следующий запрос не дочитывая до конца recv ответ предыдущего запроса? У меня, во всяком случае, происходит вот что. Код:
Мож кто что-нить подскажет. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а никак, вы обязаны дочитать.
просто WinInet это делает за вас. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
![]()
То есть InternetReadFile - фикция? И читает из уже закачанного кеша? Я конечно предполагал, но наивно думал что ошибаюсь.
Итак, это точно? |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
какая фикция, вы о чем?
он читает из соединения, но скрывает от вас детали оного. если надо дочитать старые данные, он это сделает без вашего участия. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 08.10.2016
Сообщений: 18
|
![]()
Как он может дочитать из соединения, если предположим, до окончательного чтения произошел второй запрос (асинхронно).
Получается, во втором запросе сначала кешируются данные недочитанного первого. |
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
![]() |
![]() |
![]() |
#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 |