Spec-Zone.ru › Qt 5.9

Класс QNetworkProxyQuery

Класс QNetworkProxyQuery используется для запроса настроек прокси для сокета. Подробнее...

Заголовок: #include <QNetworkProxyQuery>
qmake: QT += network
С момента: Qt 4.5
  • Список всех членов, включая унаследованные

Открытые типы

перечисление QueryType { TcpSocket, UdpSocket, SctpSocket, TcpServer, UrlRequest, SctpServer }

Открытые функции

QNetworkProxyQuery()
QNetworkProxyQuery(const QUrl &requestUrl, QueryType queryType = UrlRequest)
QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(), QueryType queryType = TcpSocket)
QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer)
QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QUrl &requestUrl, QueryType queryType = UrlRequest)
QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QString &hostname, int port, const QString &protocolTag = QString(), QueryType queryType = TcpSocket)
QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer)
QNetworkProxyQuery(const QNetworkProxyQuery &other)
~QNetworkProxyQuery()
int localPort() const
QNetworkConfiguration networkConfiguration() const
QString peerHostName() const
int peerPort() const
QString protocolTag() const
QueryType queryType() const
void setLocalPort(int port)
void setNetworkConfiguration(const QNetworkConfiguration &networkConfiguration)
void setPeerHostName(const QString &hostname)
void setPeerPort(int port)
void setProtocolTag(const QString &protocolTag)
void setQueryType(QueryType type)
void setUrl(const QUrl &url)
void swap(QNetworkProxyQuery &other)
QUrl url() const
bool operator!=(const QNetworkProxyQuery &other) const
QNetworkProxyQuery & operator=(QNetworkProxyQuery &&other)
QNetworkProxyQuery & operator=(const QNetworkProxyQuery &other)
bool operator==(const QNetworkProxyQuery &other) const

Подробное описание

Класс QNetworkProxyQuery используется для запроса настроек прокси для сокета.

QNetworkProxyQuery хранит детали создаваемого сокета или выполняемого запроса. Он используется классами QNetworkProxy и QNetworkProxyFactory, чтобы приложения могли более точно управлять тем, какие прокси-серверы используются, в зависимости от деталей запроса. Это позволяет приложению применять различные настройки в зависимости от протокола или хоста назначения, например.

QNetworkProxyQuery поддерживает следующие критерии для выбора прокси:

  • тип запроса
  • используемый локальный номер порта
  • хост назначения
  • номер порта назначения
  • имя протокола, например, "http" или "ftp"
  • запрашиваемый URL

Хост назначения — это хост в соединении при создании исходящих соединений. Это hostName параметр, переданный в QTcpSocket::connectToHost() или компонент хоста запрошенного URL с помощью QNetworkRequest.

Номер порта назначения — это запрашиваемый порт для подключения в случае исходящих сокетов, а локальный номер порта — это порт, который сокет хочет использовать локально перед подключением к внешнему соединению. В большинстве случаев локальный номер порта используется только для сокетов, принимающих соединения (QTcpSocket) или для сокетов датаграмм (QUdpSocket).

Имя протокола — это произвольная строка, которая указывает тип искомого соединения. Например, она может соответствовать схеме URL, как "http", "https" и "ftp". В большинстве случаев выбор прокси не изменяется в зависимости от протокола, но эта информация предоставляется на случай, если можно сделать лучший выбор, например, выбрать прокси-сервер кэширования HTTP для HTTP-соединений, но более мощный прокси SOCKSv5 для всех остальных.

Конфигурация сети указывает, какую конфигурацию использовать при использовании управления носителем. Например, в мобильном телефоне настройки прокси, вероятно, будут отличаться для сотовой сети и сети Wi-Fi.

Некоторые критерии могут быть некорректны для всех типов запроса. В следующей таблице перечислены наиболее часто используемые критерии в зависимости от типа запроса.

Тип запроса Описание
TcpSocket Обычные сокеты, запрашивающие соединение с удаленным сервером, как, например, QTcpSocket. Имя хоста и порт удаленного узла соответствуют значениям, переданным в QTcpSocket::connectToHost(). Локальный порт обычно равен -1, что указывает на отсутствие предпочтения по использованию порта. Компонент URL не используется.
UdpSocket Сокеты на основе датаграмм, которые могут как отправлять, так и получать данные. Локальный порт, удалённый хост или удалённый порт могут быть использованы или оставлены пустыми в зависимости от характеристик сокета. Компонент URL не используется.
SctpSocket Сокеты, ориентированные на сообщения, запрашивающие соединение с удалённым сервером. Имя хоста и порт удалённого узла соответствуют значениям, переданным в QSctpSocket::connectToHost(). Локальный порт обычно равен -1, что указывает на отсутствие предпочтения по использованию порта. Компонент URL не используется.
TcpServer Пассивные серверные сокеты, прослушивающие порт и ожидающие входящих соединений из сети. Обычно используется только локальный порт, но удалённый адрес может быть использован в определённых случаях, например, для указания удалённого хоста, от которого ожидается соединение. Компонент URL не используется.
UrlRequest Более высокоуровневый запрос, например, такие, как поступающие от QNetworkAccessManager. Эти запросы неизбежно будут использовать исходящий TCP-сокет, но этот тип запроса указывает на то, что более подробная информация присутствует в компоненте URL. Для удобства реализации хост и порт URL задаются в качестве адреса назначения.
SctpServer Пассивные серверные сокеты, прослушивающие порт SCTP и ожидающие входящих соединений из сети. Обычно используется только локальный порт, но удалённый адрес может быть использован в определённых случаях, например, для указания удалённого хоста, от которого ожидается соединение. Компонент URL не используется.

Следует отметить, что любой из критериев может отсутствовать или быть неизвестным (пустая QString для имени хоста или имени протокола, -1 для номеров портов). В этом случае функции, выполняющие запрос, должны сделать предположение или применить определённые значения по умолчанию.

См. такжеQNetworkProxy, QNetworkProxyFactory, QNetworkAccessManager и QAbstractSocket::setProxy().

Документация типов членов

перечисление QNetworkProxyQuery::QueryType

Описывает тип запроса QNetworkProxyQuery.

Константа Значение Описание
QNetworkProxyQuery::TcpSocket 0 обычный исходящий TCP-сокет
QNetworkProxyQuery::UdpSocket 1 сокет UDP на основе датаграмм, который может отправлять данные на несколько адресов
QNetworkProxyQuery::SctpSocket 2 ориентированный на сообщения исходящий SCTP-сокет
QNetworkProxyQuery::TcpServer 100 TCP-сервер, прослушивающий входящие соединения из сети
QNetworkProxyQuery::UrlRequest 101 более сложный запрос, включающий загрузку URL
QNetworkProxyQuery::SctpServer 102 SCTP-сервер, прослушивающий входящие соединения из сети

См. такжеqueryType() и setQueryType().

Документация функций членов

QNetworkProxyQuery::QNetworkProxyQuery()

Создаёт объект QNetworkProxyQuery по умолчанию. По умолчанию тип запроса будет QNetworkProxyQuery::TcpSocket.

QNetworkProxyQuery::QNetworkProxyQuery(const QUrl &requestUrl, QueryType queryType = UrlRequest)

Создаёт QNetworkProxyQuery с URL requestUrl и устанавливает тип запроса на queryType.

См. такжеprotocolTag(), peerHostName() и peerPort().

QNetworkProxyQuery::QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(), QueryType queryType = TcpSocket)

Создаёт QNetworkProxyQuery типа queryType и устанавливает тег протокола в protocolTag. Этот конструктор подходит для запросов QNetworkProxyQuery::TcpSocket, так как он устанавливает имя хоста удалённого узла в hostname и номер порта удалённого узла в port.

QNetworkProxyQuery::QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer)

Создаёт QNetworkProxyQuery типа queryType и устанавливает тег протокола в protocolTag. Этот конструктор подходит для запросов QNetworkProxyQuery::TcpSocket, так как он устанавливает номер локального порта в bindPort.

Обратите внимание, что bindPort имеет тип quint16 для указания точного номера порта. Значение -1 (неизвестно) в этом контексте недопустимо.

См. такжеlocalPort().

QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QUrl &requestUrl, QueryType queryType = UrlRequest)

Создаёт QNetworkProxyQuery с URL requestUrl и устанавливает тип запроса на queryType. Указанная networkConfiguration используется для разрешения настроек прокси.

См. такжеprotocolTag(), peerHostName(), peerPort() и networkConfiguration().

QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QString &hostname, int port, const QString &protocolTag = QString(), QueryType queryType = TcpSocket)

Создаёт QNetworkProxyQuery типа queryType и устанавливает тег протокола в protocolTag. Этот конструктор подходит для запросов QNetworkProxyQuery::TcpSocket, так как он устанавливает имя хоста удалённого узла в hostname и номер порта удалённого узла в port. Указанная networkConfiguration используется для разрешения настроек прокси.

См. такжеnetworkConfiguration().

QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer)

Создаёт QNetworkProxyQuery типа queryType и устанавливает тег протокола в protocolTag. Этот конструктор подходит для запросов QNetworkProxyQuery::TcpSocket, так как он устанавливает номер локального порта в bindPort. Указанная networkConfiguration используется для разрешения настроек прокси.

Обратите внимание, что bindPort имеет тип quint16 для указания точного номера порта. Значение -1 (неизвестно) в этом контексте недопустимо.

См. такжеlocalPort() и networkConfiguration().

QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkProxyQuery &other)

Создаёт объект QNetworkProxyQuery, являющийся копией other.

QNetworkProxyQuery::~QNetworkProxyQuery()

Удаляет этот объект QNetworkProxyQuery.

int QNetworkProxyQuery::localPort() const

Возвращает номер порта сокета, который будет принимать входящие пакеты от удалённых серверов, или -1, если порт неизвестен.

См. также peerPort(), peerHostName() и setLocalPort().

QNetworkConfiguration QNetworkProxyQuery::networkConfiguration() const

Возвращает компонент конфигурации сети запроса.

См. также setNetworkConfiguration().

QString QNetworkProxyQuery::peerHostName() const

Возвращает имя хоста или IP-адрес запрашиваемого исходящего подключения, или пустую строку, если имя удаленного хоста неизвестно.

Если тип запроса — QNetworkProxyQuery::UrlRequest, эта функция возвращает компонент хоста запрашиваемого URL.

См. также peerPort(), localPort() и setPeerHostName().

int QNetworkProxyQuery::peerPort() const

Возвращает номер порта для исходящего запроса или -1, если номер порта неизвестен.

Если тип запроса — QNetworkProxyQuery::UrlRequest, эта функция возвращает номер порта запрашиваемого URL. В общем случае фреймворки заполняют номер порта значениями по умолчанию.

См. также peerHostName(), localPort() и setPeerPort().

QString QNetworkProxyQuery::protocolTag() const

Возвращает тег протокола для объекта QNetworkProxyQuery, или пустой QString, если тег протокола неизвестен.

В случае запросов типа QNetworkProxyQuery::UrlRequest эта функция возвращает значение компонента схемы URL.

См. также setProtocolTag() и url().

QueryType QNetworkProxyQuery::queryType() const

Возвращает тип запроса.

См. также setQueryType().

void QNetworkProxyQuery::setLocalPort(int port)

Устанавливает номер порта, который сокет хочет использовать локально для приема входящих пакетов от удаленных серверов, в port. Локальный порт чаще всего используется с типами запросов QNetworkProxyQuery::TcpServer и QNetworkProxyQuery::UdpSocket.

Допустимые значения — от 0 до 65535 (при 0 любой номер порта будет приемлем) или -1, что означает, что локальный номер порта неизвестен или не применим.

В некоторых случаях для специальных протоколов локальный номер порта также может использоваться с запросом типа QNetworkProxyQuery::TcpSocket. В этом случае сокет указывает, что хочет использовать номер порта port при подключении к удаленному хосту.

См. также localPort(), setPeerPort() и setPeerHostName().

void QNetworkProxyQuery::setNetworkConfiguration(const QNetworkConfiguration &networkConfiguration)

Устанавливает компонент конфигурации сети для этого объекта QNetworkProxyQuery в networkConfiguration. Конфигурация сети может быть использована для возвращения различных настроек прокси в зависимости от используемой сети, например, WLAN или сети сотовой связи на мобильном телефоне.

В случае конфигураций «выбор пользователя» или «сетевая служба» необходимо сначала запустить QNetworkSession и получить активную конфигурацию из её свойств.

См. также networkConfiguration().

void QNetworkProxyQuery::setPeerHostName(const QString &hostname)

Устанавливает имя хоста исходящего подключения на hostname. Пустое имя хоста может использоваться для обозначения неизвестного удаленного хоста.

Имя удаленного хоста также может использоваться для указания ожидаемого исходного адреса входящего подключения в случае типов запросов QNetworkProxyQuery::UdpSocket или QNetworkProxyQuery::TcpServer.

См. также peerHostName(), setPeerPort() и setLocalPort().

void QNetworkProxyQuery::setPeerPort(int port)

Устанавливает запрашиваемый номер порта для исходящего подключения на port. Допустимые значения — от 1 до 65535 или -1, чтобы указать, что номер удалённого порта неизвестен.

Номер удаленного порта также может использоваться для обозначения ожидаемого номера порта входящего подключения в случае запросов типа QNetworkProxyQuery::UdpSocket или QNetworkProxyQuery::TcpServer.

См. также peerPort(), setPeerHostName() и setLocalPort().

void QNetworkProxyQuery::setProtocolTag(const QString &protocolTag)

Устанавливает тег протокола для объекта QNetworkProxyQuery в protocolTag.

Тег протокола — произвольная строка, указывающая, какой протокол используется по сокету, например, «http», «xmpp», «telnet» и т.д. Тег протокола используется бэкендом для возвращения запроса, более специфичного для рассматриваемого протокола: например, для подключения HTTP может использоваться кэширующий прокси-сервер HTTP, а для всех остальных подключений — более мощный прокси-сервер SOCKSv5.

См. также protocolTag().

void QNetworkProxyQuery::setQueryType(QueryType type)

Устанавливает тип запроса этого объекта в type.

См. также queryType().

void QNetworkProxyQuery::setUrl(const QUrl &url)

Устанавливает компонент URL для объекта QNetworkProxyQuery в url. Установка URL также установит тег протокола, имя удалённого хоста и номер порта. Это делается для того, чтобы упростить реализацию кода, определяющего используемый прокси-сервер.

См. также url(), peerHostName() и peerPort().

void QNetworkProxyQuery::swap(QNetworkProxyQuery &other)

Меняет местами экземпляры запроса прокси-сервера сети с other. Эта функция очень быстрая и никогда не терпит неудачу.

Эта функция была представлена в Qt 5.0.

QUrl QNetworkProxyQuery::url() const

Возвращает компонент URL этого объекта QNetworkProxyQuery в случае запроса типа QNetworkProxyQuery::UrlRequest.

См. также setUrl().

bool QNetworkProxyQuery::operator!=(const QNetworkProxyQuery &other) const

Возвращает true, если этот объект QNetworkProxyQuery не содержит те же данные, что и other.

QNetworkProxyQuery &QNetworkProxyQuery::operator=(QNetworkProxyQuery &&other)

Оператор перемещающей присваивания.

QNetworkProxyQuery &QNetworkProxyQuery::operator=(const QNetworkProxyQuery &other)

Копирует содержимое other.

bool QNetworkProxyQuery::operator==(const QNetworkProxyQuery &other) const

Возвращает true, если этот объект QNetworkProxyQuery содержит те же данные, что и other.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qnetworkproxyquery.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API