Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие _ Ограничение скорости загрузки

Автор: amorf 18.11.2007, 18:27

Использую QHttp, мне необходимо ограничить скорость загрузки, это вообще реально?

Автор: balbes 18.11.2007, 18:35

Это можно сделать переопределив класс QTcpSocket и добавив в него контроль скорости, как это можно сделать можно понять из статьи: http://www.crossplatform.ru/?q=node/294. Потом только нужно незабыть про:

int QHttp::setSocket ( QTcpSocket *socket)
:)

Удачи!

Автор: amorf 18.11.2007, 18:40

Куда не глянь уже статья написана по этому поводу, только где же взять время, чтобы их все прочесть. :)

Спасибо

Автор: AlekseyK 28.11.2010, 18:59

Цитата(balbes @ 18.11.2007, 17:35) *
Это можно сделать переопределив класс QTcpSocket и добавив в него контроль скорости, как это можно сделать можно понять из статьи: http://www.crossplatform.ru/?q=node/294. Удачи!


Этот пример не работает со времён Qt 4.2 поведение QIODevice изменилось и пример перестал работать корректно: кушал 100% CPU (это я исправил), но не все данные приходят целиком. Вместо него появился Torrent Example в Qt с ограничением скорости. Мне нужен просто сокет с контролем скорости, поэтому я выкинул из класса PeerWireClient всё, что касается торрента, однако программа не заработала вообще. Кто разбирался с этим моментом: можно вас попросить взглянуть на код, пожалуйста,- в чём причина? Код прилагается. Класс RateController работает отлично - проверено, проблема в изменённом PeerWireClient - у меня это класс KTcpSocket.

 ratecontrol_test.zip ( 5.42 килобайт ) : 109
 

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)