Spec-Zone.ru › Qt 5.6

Класс QNetworkProxyQuery

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

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

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

Перечисление QueryType { TcpSocket, UdpSocket, TcpServer, UrlRequest }

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

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 не используется.
TcpServer Пассивные серверные сокеты, которые слушают порт и ожидают входящих подключений из сети. Обычно используется только локальный порт, но удалённый адрес может быть использован в особых случаях, например, для указания удалённого хоста, с которого ожидается подключение. Компонент URL не используется.
UrlRequest Запрос более высокого уровня, такой как те, что поступают от QNetworkAccessManager. Эти запросы неизбежно будут использовать исходящий TCP-сокет, но этот тип запроса используется для указания наличия более подробной информации в компоненте URL. Для упрощения реализации хост и порт URL устанавливаются в качестве адреса назначения.

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

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

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

enum QNetworkProxyQuery::QueryType

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

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

См. также 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().

END_OF_DOCUMENT_MARKER

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/archives/qt-5.6/qnetworkproxyquery.html

Spec-Zone.ru

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