Spec-Zone.ru › Qt 5.12

Класс QNetworkProxyQuery

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

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

Типы публичного интерфейса

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

Публичные функции

QNetworkProxyQuery()
QNetworkProxyQuery(const QUrl &requestUrl, QNetworkProxyQuery::QueryType queryType = UrlRequest)
QNetworkProxyQuery(const QString &hostname, int port, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpSocket)
QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QNetworkProxyQuery::QueryType queryType = TcpServer)
QNetworkProxyQuery(const QNetworkProxyQuery &other)
~QNetworkProxyQuery()
int localPort() const
QString peerHostName() const
int peerPort() const
QString protocolTag() const
QNetworkProxyQuery::QueryType queryType() const
void setLocalPort(int port)
void setPeerHostName(const QString &hostname)
void setPeerPort(int port)
void setProtocolTag(const QString &protocolTag)
void setQueryType(QNetworkProxyQuery::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

Статические публичные члены

const QMetaObject staticMetaObject

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

Класс 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, QNetworkProxyQuery::QueryType queryType = UrlRequest)

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

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

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

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

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

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

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

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

QNetworkProxyQuery::QNetworkProxyQuery(const QNetworkProxyQuery &other)

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

QNetworkProxyQuery::~QNetworkProxyQuery()

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

int QNetworkProxyQuery::localPort() const

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

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

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().

QNetworkProxyQuery::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::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(QNetworkProxyQuery::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.12/qnetworkproxyquery.html

Spec-Zone.ru

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