Adam Smith писал(а):Ведь в поисках ответов и за "прокачкой" я пришел сюда.
Adam Smith писал(а):Подозреваю виновата география и история.
Я написал класс для получения списка URL'ов с HTTP серверов, но думаю может лучше выбросить позднее связывание с IE и написать абсолютно всё на api? Что подскажете?
От самописной реализации меня отталкивает необходимость собирать фрагменты "chunks".
И наоборот притягивает возможность легко узнать дату, размер файла перед скачиванием.
Может кто уже писал что-то практическое с обменом по протоколу HTTP, и что подскажет?
Чтобы программа не подлагивала при торможениях процесса,
хочу сделать 2 отдельных процесса, интерфейсный и рабочий.
Посоветуете из вашего опыта, [b]как реализовать обмен между процессами?[/b]
Первыми мне в голову лезут простейшие костыли на api PostMessage
Дочерний процесс в командной строке получает hWnd тексбокса
и отправляет в тот текстбокс hWnd своего текстбокса.
Теперь оба процесса могут слать PostMessage друг другу :lol:
Советуют аж в бородатом году http://www.codeproject.com/Articles/3815/Inter-process-communication-using-registered-messa
Искать ответ в статьях Trik'а или дадите (другую) ссылку?
Adam Smith писал(а):Продолжали бы по стариковски подсказывать, как вы в былые годы решали такие, нынче уже банальные задачи.
Adam Smith писал(а):И никто не подсказал мне, что в GET запросе достаточно будет указать протокол 1.0, и не нашлось исходников для борьбы с chunked. А?
Adam Smith писал(а):А вот твой пост как раз выглядит как попытка замутить ну хоть какой-то флэйм на давно остывшем месте
Adam Smith писал(а):что весь интернет движется в сторону отказа от небезопасных соединений
Adam Smith писал(а):На кого этот прозрачный намек без малейшей попытки пофлэймить?
Adam Smith писал(а):Кто-то продолжает на vb6 кодить, но тем не менее зачем-то перечисляются прошедший год и некие современные сервера.
Adam Smith писал(а):Кстати да, я в курсе, что весь интернет движется в сторону отказа от небезопасных соединений.
alibek писал(а):При этом утечки неизбежны и HTTPS будет скомпрометирован.
Adam Smith писал(а):Одно дело фича "Инкогнито" в браузерах
Adam Smith писал(а):Что-то я не представляю, в чём смысл отключать на серверах поддержку HTTP 1.0, которая по-умолчанию всегда есть и бывают ли вообще такие настройки.
Там был ещё один вопрос в конце, такой незаметный и неудобный своей конкретностью.Proxy писал(а):Тогда эта задача не была менее банальна, нежели сейчас.
Выш прям фанаты конкретики, так и написали бы:Proxy писал(а):Есть, однако тогда поисковики не смогут индексировать, они заходят по HTTP 1.0 часто. (все ориентируются на популярные решения).
Однако всё это не говорит в пользу того, что использовать 1.0 — хорошая идея.
Adam Smith писал(а):И никто не подсказал мне, что в GET запросе достаточно будет указать протокол 1.0, и не нашлось исходников для борьбы с chunked. А?
Adam Smith писал(а):Чтобы программа не подлагивала при торможениях процесса, хочу сделать 2 отдельных процесса, интерфейсный и рабочий.
Для начала никто никому ничего не должен. Но например для ответа, что предпочтителен 1.1. А ещё знатоки говорят, что поисковые боты часто по 1.0 ходят.Qwertiy писал(а):А почему сервер должен поддерживать 1.0?
:lol: Вправду похоже, что проблема со слиянием? В моём случае вообще строки, нет проблем с кусками и 1.0 я использую для получения списка файлов.Qwertiy писал(а):И в чём вообще проблема с chunked? Это вопрос, как сделать конкатенацию двух массивов?
Как может так и работает, асинхронность не спасает от подтормаживания в момент коннекта или передачи запроса при медленном канале.Qwertiy писал(а):Зачем два процесса, если достаточно двух потоков? А может и одного. Разве api асинхронного ввода-вывода не может работать с сетью?
Adam Smith писал(а):В моём случае вообще строки
Adam Smith писал(а): мне на минуточку кажется, что в нашей реальности сервера для клиентов, а не наоборот.
Adam Smith писал(а):Как может так и работает, асинхронность не спасает от подтормаживания в момент коннекта или передачи запроса при медленном канале.
Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов
Adam Smith писал(а):Прочитал, и как я понял, было бы хорошо, чтобы моя программа работала в т.ч. и с шарами яндекса.
Adam Smith писал(а):На счет "блочно-связанных списков", дал бы ссылку,
Adam Smith писал(а):Не вижу никакого преимущества перед обычной строкой в которую сливаются все поступающие данные.
Adam Smith писал(а):какой я должен был из этого сделать вывод?
Чьё это мнение? Моё мнение о многопоточности сложилось из ваших статей и постов, суть в том, что надежная многопоточность в vb6 нереализуема, даже если защитить все "свои" данные, рантаймовые останутся.Хакер писал(а):Что мнение, что многопоточное скачивание априори хуже многопроцессного, глупое и не на чём не базируется.
Adam Smith писал(а):Да, блин, могу я склеивать эти куски, протокол 1.1 даже по-русски в вики расписан понятно.
Считаете, мне нужно это сделать?
Adam Smith писал(а):Чьё это мнение?
Adam Smith писал(а):Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов.
Adam Smith писал(а):Моё мнение о многопоточности сложилось из ваших статей и постов
Adam Smith писал(а): но к строкам отношусь просто, могу прям в коде в кавычках что-то написать.
Private Declare Function recv _
Lib "ws2_32.dll" (ByVal S As Long, _
ByVal buf As Any, _
ByVal BufLen As Long, _
ByVal flags As Long) As Long
Тут человек явно говорит об одном потоке, Standart EXE, повторяю, не о многопоточности.Qwertiy писал(а):Adam Smith писал(а):Чтобы программа не подлагивала при торможениях процесса, хочу сделать 2 отдельных процесса, интерфейсный и рабочий.
Зачем два процесса, если достаточно двух потоков?
А может и одного. Разве api асинхронного ввода-вывода не может работать с сетью?
Я отвечаю, что в однопоточном Standart EXE будут подлагивания, это не моя придумка, есть такое словечко https://ru.wikipedia.org/wiki/Лаг_(компьютерный_сленг)Adam Smith писал(а):Как может так и работает, асинхронность не спасает от подтормаживания в момент коннекта или передачи запроса при медленном канале.Qwertiy писал(а):Зачем два процесса, если достаточно двух потоков? А может и одного. Разве api асинхронного ввода-вывода не может работать с сетью?
Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов.
Это признание моей правоты не должно было быть явным, для этого мой пост назван чушью и паранойей и поверх всё это присыпано мини-предсказанием.Хакер писал(а):Adam Smith писал(а):Как может так и работает, асинхронность не спасает от подтормаживания в момент коннекта или передачи запроса при медленном канале.
Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов
Это чушь и паранойя. А вот что действительно правда: асинхронные API (дико глючный WinInet и более нормальный WinHTTP) не имеют механизма асинхронных уведомлений такого, чтобы дёргался именно поток-заказчик. Это будет второй горе-топик аналогичный соседнему топику про таймеры.
Тут мне присвоено глупое мнение, которого я никогда не придерживался и нигде не высказывал.Хакер писал(а):Adam Smith писал(а):какой я должен был из этого сделать вывод?
Что мнение, что многопоточное скачивание априори хуже многопроцессного, глупое и не на чём не базируется.
Тут подтверждается, что это не я что-то себе придумал, а ко мне действительно приклеено какое-то глупое мнение о том, что многопоточность хуже.Хакер писал(а):Adam Smith писал(а):Чьё это мнение?
Того, кто писал этот текст:Adam Smith писал(а):Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов.
Хакер писал(а):Но я бы прежде чем писать, подумал, предстоит ли серия склеек, предстоят ли групповые склейки, есть ли смысл в обёртовании массивов в варианты и не лучше ли перейти на блочно-массивную организацию данных и вообще ничего не склеивать.
Хакер писал(а):Adam Smith писал(а):В моём случае вообще строки
Ты не должен использовать строки. Ты должен использовать блочно-связанный список, построенный на байтовых массивах.
Хакер писал(а):Adam Smith писал(а):На счет "блочно-связанных списков", дал бы ссылку,
Да я не держу никаких ссылок ни на какие статьи или примеры. Если уж мне и нужна какая-то вещь, то я иду в Гугл, а Гугл есть у всех в равной степени.
То, что ты нашёл, касается просто связного списка, а тут, очевидно, речь идёт о таком, где элемент цепочки — это блок каких-то данных.
Adam Smith писал(а):Я почему-то уверен, что один поток неизбежно будет подлагивать, тем более дальше по программе скачивание N'ного (большого) кол-ва (больших) файлов.
Упс, снова процитировал.Хакер писал(а):Так что ещё раз: НЕ БУДЕТ никакой стабильности работы МП-процесса на VB6, пока потоко-специфичные данные лежат в секции данных (что вполне годится для реально-singlethreaded-программ), а не в TLS.
*******
Увы, но это не сработает. Потому что в набор потоко-специфичных данных, которым нужна изоляция, входят не только все ваши глобальные, но и ряд внутрирантаймовых переменных, о которых вы не догадываетесь. То есть какими бы чудесным и совершенным не были бы лично вы и ваш вылизанный код, который бы использовал глобальные переменные очень аккуратно, и вдумчиво бы использовал TLS там, где это надо для межпоточной изоляции, ваш проект всё равно будет падать в случайные моменты времени, потому что изоляция тех структур, которые используются «под капотом» для работы VB, не обеспечена.
Adam Smith писал(а):Всё таки ты утверждал, что многопоточный вариант, который (ты говоришь) мне тут любезно предложили - это вообще-то не вариант.
Adam Smith писал(а):И тут ты тоже утверждал, что API не имеют нормального механизма асинхронных уведомлений, цитировать не буду, ты всё равно придумаешь альтернативную версию моего мнения, того, что я хотел сказать и думал.
Adam Smith писал(а):асинхронность не спасает от подтормаживания в момент коннекта или передачи запроса при медленном канале.
Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 44