Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: [QNetworkAccessManager] Увеличить количество одновременных подключений
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Greg
Здравствуйте форумчане.

Как увеличить число одновременных запросов к одному серверу\порту используя класс QNetworkAccessManager?
В документации сказано, что стоит ограничение в 6 запросов к одному серверу\порту.


Я отредактировал константу defaultHttpChannelCount в исходном файле qhttpnetworkconnection.cpp Qt 5.5.1, но количество запросов увеличилось с 6 до 10.

До редактирования:
const int QHttpNetworkConnectionPrivate::defaultHttpChannelCount = 6;


После:
const int QHttpNetworkConnectionPrivate::defaultHttpChannelCount = 600;


Как тестировал:
Отправлял циклом запросы на свой сервер:
    for(int i = 0; i < 550; ++i)
        srv->wake(i);


На сервере делал задержку в одну секунду и отдавал ответ:
        int msec = 1 * 1000000;
        auto cmd = request.getParameterValues("comand");
        usleep(msec);
        response.out() << cmd.front();


В логе видно, что на сервер приходит по 10 запросов, когда ожидались все 550 "одновременно".
Greg
Цитата(Greg @ 5.1.2016, 19:56) *
Здравствуйте форумчане.

Как увеличить число одновременных запросов к одному серверу\порту используя класс QNetworkAccessManager?
В документации сказано, что стоит ограничение в 6 запросов к одному серверу\порту.


Я отредактировал константу defaultHttpChannelCount в исходном файле qhttpnetworkconnection.cpp Qt 5.5.1, но количество запросов увеличилось с 6 до 10.

До редактирования:
const int QHttpNetworkConnectionPrivate::defaultHttpChannelCount = 6;


После:
const int QHttpNetworkConnectionPrivate::defaultHttpChannelCount = 600;


Как тестировал:
Отправлял циклом запросы на свой сервер:
    for(int i = 0; i < 550; ++i)
        srv->wake(i);


На сервере делал задержку в одну секунду и отдавал ответ:
        int msec = 1 * 1000000;
        auto cmd = request.getParameterValues("comand");
        usleep(msec);
        response.out() << cmd.front();


В логе видно, что на сервер приходит по 10 запросов, когда ожидались все 550 "одновременно".

Количество подключений увеличилось, проверил на сервере товарища. Проблема решена.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.