Http и потоки, Ищу исходники |
Здравствуйте, гость ( Вход | Регистрация )
Http и потоки, Ищу исходники |
bo0blik |
1.10.2009, 17:40
Сообщение
#1
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: 0 |
Буду рад если кто-то поделится исходниками на эту тему, очень интересно посмотреть.
|
|
|
ViGOur |
1.10.2009, 20:32
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А что именно интересует?
В том, чтобы самому писать, ничего сложного нет! |
|
|
bo0blik |
1.10.2009, 20:48
Сообщение
#3
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: 0 |
Я просто из тех людей которые пока не увидят код, ничего не поймут.
Просто интересует распределенная много-поточная отправка http запросов. |
|
|
Elfinit |
1.10.2009, 21:52
Сообщение
#4
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Вот примерчик. Набор классов для выполнения разных типов запросов с разными параметрами. Примеры использования:
GET:
POST:
Заботиться больше ни о чём (в т.ч. об удалении экзепляров) не нужно, в принципе, даже ответ обрабатывать необязательно, т.е. можно сразу после создания объекта вызывать run. Естественно, обработка любого числа запросов будет происходить параллельно. Плюс имеются сигналы разные (download/upload progress, errors, etc.). И пустые слоты, которые можно заполнить на свой вкус) И ещё - НЕ используй QHttp. Мои классы написаны на основе QNetworkAccessManager Сообщение отредактировал Elfinit - 1.10.2009, 21:58
Прикрепленные файлы
|
|
|
bo0blik |
2.10.2009, 4:43
Сообщение
#5
|
Студент Группа: Участник Сообщений: 27 Регистрация: 13.9.2009 Пользователь №: 1089 Спасибо сказали: 0 раз(а) Репутация: 0 |
Elfinit, спасибо большое, про http я уже досконально изучил, просто интересно как это правильней всего с потоками выглядит.
Я посмотрел класс, очень интересный пример. Если у кого еще есть что-нибудь буду очень благодарен. |
|
|
Elfinit |
2.10.2009, 22:49
Сообщение
#6
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
Elfinit, спасибо большое, про http я уже досконально изучил, просто интересно как это правильней всего с потоками выглядит. Я посмотрел класс, очень интересный пример. Если у кого еще есть что-нибудь буду очень благодарен. Ммм...А зачем вообще париться с потоками в данном случае, за тебя всё библиотека сделает..Главное-инициировать запрос и в нужное время отреагировать на ответ.. |
|
|
rnd |
6.10.2009, 20:36
Сообщение
#7
|
Студент Группа: Участник Сообщений: 54 Регистрация: 22.7.2009 Пользователь №: 930 Спасибо сказали: 1 раз(а) Репутация: 0 |
сегодня тоже провозился пол-дня. Пытался сделать из асинхронного режима запросов синхронный, для чего пускал qttp в отдельном потоке - так и не удалось победить - вешается зараза в WaitForMultipleObjects
|
|
|
BRE |
6.10.2009, 21:12
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
сегодня тоже провозился пол-дня. Пытался сделать из асинхронного режима запросов синхронный, для чего пускал qttp в отдельном потоке - так и не удалось победить - вешается зараза в WaitForMultipleObjects Как-то связи синхронного режима с отдельным потоком не понял? Вот набросок кода, думаю идея должна быть понятна:
|
|
|
BRE |
7.10.2009, 8:32
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Для того, что бы сделать работу QHttp синхронной, нужно что бы отрабатывали QSocketNotifier. Для этого нужно крутить eventloop (именно там происходят необходимые действия). Предыдущий пример показывал саму идею, "боевой" код я бы сделал примерно таким:
Если необходимо сделать отдельный поток, который делает запрос и получает/обрабатывает ответ, то такой код можно использовать и в методе run потока. |
|
|
rnd |
7.10.2009, 12:57
Сообщение
#10
|
Студент Группа: Участник Сообщений: 54 Регистрация: 22.7.2009 Пользователь №: 930 Спасибо сказали: 1 раз(а) Репутация: 0 |
BRE, то, что вы предлагаете - очень опасная практика. Начнут прокачиваться сообщения, т.е. вызываться слоты\обработчики, которые в данный момент времени (посреди работы функции) вызываться совершенно не должны.
Именно поэтому и создается отдельный поток, в который засовывается(moveToThread) объект QNetworkAccessManager там для него и идет прокачка сообщений, а вызывающий поток ждет. Вчерашняя проблема решилась заменой QHttp на QNetworkAccessManager:) |
|
|
Текстовая версия | Сейчас: 27.12.2024, 16:19 |