Класс QNetworkConfiguration
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точек доступа. Подробнее...
| Заголовок: | #include <QNetworkConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
Открытые типы
| перечисление | ТипНосителя { BearerUnknown, BearerEthernet, BearerWLAN, Bearer2G, ..., BearerLTE } |
| перечисление | Назначение { UnknownPurpose, PublicPurpose, PrivatePurpose, ServiceSpecificPurpose } |
| перечисление | ФлагСостояния { Undefined, Defined, Discovered, Active } |
| флаги | ФлагиСостояний |
| перечисление | Тип { InternetAccessPoint, ServiceNetwork, UserChoice, Invalid } |
Открытые функции
| QNetworkConfiguration() | |
| QNetworkConfiguration(const QNetworkConfiguration &other) | |
| ~QNetworkConfiguration() | |
| QNetworkConfiguration::ТипНосителя | ТипНосителя() const |
| QNetworkConfiguration::ТипНосителя | СемействоТиповНосителей() const |
| QString | ИмяТипаНосителя() const |
| QList<QNetworkConfiguration> | ДочерниеЭлементы() const |
| int | ВремяОжиданияПодключения() const |
| QString | Идентификатор() const |
| bool | ДоступноРоуминг() const |
| bool | Действительно() const |
| QString | Имя() const |
| QNetworkConfiguration::Назначение | Назначение() const |
| bool | УстановитьВремяОжиданияПодключения(int timeout) |
| QNetworkConfiguration::ФлагиСостояний | Состояние() const |
| void | Поменять(QNetworkConfiguration &other) |
| QNetworkConfiguration::Тип | Тип() const |
| bool | operator!=(const QNetworkConfiguration &other) const |
| QNetworkConfiguration & | operator=(QNetworkConfiguration &&other) |
| QNetworkConfiguration & | operator=(const QNetworkConfiguration &other) |
| bool | operator==(const QNetworkConfiguration &other) const |
Подробное описание
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точек доступа.
QNetworkConfiguration инкапсулирует одну точку доступа или сетевую службу. В большинстве случаев одну конфигурацию точки доступа можно сопоставить с одним сетевым интерфейсом. Однако один сетевой интерфейс не всегда может соответствовать только одной конфигурации точки доступа. Несколько конфигураций для одного сетевого устройства могут активировать несколько точек доступа. Примером устройства, которое может демонстрировать такую конфигурацию, может быть смартфон, который позволяет пользователю управлять несколькими конфигурациями WLAN, в то время как само устройство имеет только одно сетевое устройство WLAN.
Класс QNetworkConfiguration также поддерживает концепцию сетевых служб. Эта концепция позволяет группировать несколько конфигураций точек доступа в один объект. Такая группа называется сетевой службой и может быть полезна в тех случаях, когда требуется сетевая сессия с конкретной целевой сетью (например, корпоративная сеть). При использовании сетевой службы пользователю обычно не важно, какой из вариантов подключения выбирается (например, корпоративная WLAN или VPN через GPRS), если он может подключиться к целевому серверу компании. В зависимости от текущего местоположения и времени некоторые из точек доступа, составляющих сетевую службу, могут быть недоступны. Кроме того, можно включить автоматическое роуминг по точкам доступа, что позволяет устройству динамически изменять конфигурацию сетевого интерфейса, сохраняя при этом подключение приложений к целевой сети. Это позволяет адаптироваться к меняющейся среде и может оптимизировать затраты, скорость или другие сетевые параметры.
Специальные конфигурации типа UserChoice предоставляют конфигурацию-заглушку, которая разрешается на реальную сетевую конфигурацию платформой при открытии сессии. Не все платформы поддерживают концепцию конфигурации пользовательского выбора.
Состояния конфигурации
Список доступных конфигураций можно получить через QNetworkConfigurationManager::allConfigurations(). Конфигурация может иметь несколько состояний. Состояние конфигурации Defined указывает, что конфигурация хранится на устройстве. Однако конфигурация еще не готова к активации, например, WLAN может быть недоступен в данный момент.
Состояние Discovered подразумевает, что конфигурация Defined и внешние условия таковы, что конфигурацию можно немедленно использовать для открытия новой сетевой сессии. Примером такого внешнего условия может быть подключение Ethernet-кабеля к устройству или наличие WLAN с указанным SSID в зоне действия.
Состояние Active подразумевает, что конфигурация Discovered. Конфигурация в этом состоянии в настоящее время используется приложением. У базового сетевого интерфейса есть действительная IP-конфигурация, и он может передавать IP-пакеты между устройством и целевой сетью.
Состояние Undefined указывает, что система знает о возможных целевых сетях, но не может фактически использовать эти знания для подключения к ним. Примером такого состояния может быть зашифрованный WLAN, который был обнаружен, но пользователь фактически не сохранил конфигурацию, включая необходимый пароль, что позволит устройству подключиться к нему.
В зависимости от типа конфигурации некоторые состояния носят временный характер. Подключение GPRS/UMTS почти всегда может быть Discovered, если сеть GSM/UMTS доступна. Однако, если сеть GSM/UMTS теряет подключение, соответствующая конфигурация может изменить свое состояние с Discovered на Defined. Аналогичный сценарий может быть вызван доступностью WLAN. QNetworkConfigurationManager::updateConfigurations() можно использовать для ручного запуска обновлений состояний. Обратите внимание, что на некоторых платформах такие обновления не требуются, так как они неявно изменяют состояние после обнаружения. Если состояние конфигурации изменяется, все связанные экземпляры QNetworkConfiguration автоматически изменяют свое состояние.
См. также QNetworkSession и QNetworkConfigurationManager.
Документация по типам членов
перечисление QNetworkConfiguration::ТипНосителя
Указывает тип носителя, используемого конфигурацией.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::BearerUnknown |
0 |
Тип носителя неизвестен или не указан. Функция bearerTypeName() может вернуть дополнительную информацию. |
QNetworkConfiguration::BearerEthernet |
1 |
Конфигурация для интерфейсов Ethernet. |
QNetworkConfiguration::BearerWLAN |
2 |
Конфигурация для беспроводного интерфейса Wi-Fi. |
QNetworkConfiguration::Bearer2G |
3 |
Конфигурация для интерфейсов CSD, GPRS, HSCSD, EDGE или cdmaOne. |
QNetworkConfiguration::Bearer3G |
11 |
Конфигурация для 3G интерфейса. |
QNetworkConfiguration::Bearer4G |
12 |
Конфигурация для 4G интерфейса. |
QNetworkConfiguration::BearerCDMA2000 |
4 |
Конфигурация для интерфейса CDMA. |
QNetworkConfiguration::BearerWCDMA |
5 |
Конфигурация для интерфейса W-CDMA/UMTS. |
QNetworkConfiguration::BearerHSPA |
6 |
Конфигурация для интерфейса High Speed Packet Access (HSPA). |
QNetworkConfiguration::BearerBluetooth |
7 |
Конфигурация для интерфейса Bluetooth. |
QNetworkConfiguration::BearerWiMAX |
8 |
Конфигурация для интерфейса WiMAX. |
QNetworkConfiguration::BearerEVDO |
9 |
Конфигурация для интерфейса EVDO (3G). |
QNetworkConfiguration::BearerLTE |
10 |
Конфигурация для интерфейса LTE (4G). |
enum QNetworkConfiguration::Purpose
Определяет назначение конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::UnknownPurpose |
0 |
Конфигурация не указывает никакого назначения. Это значение по умолчанию. |
QNetworkConfiguration::PublicPurpose |
1 |
Конфигурация может быть использована для доступа в интернет по общедоступному подключению. |
QNetworkConfiguration::PrivatePurpose |
2 |
Конфигурация подходит для доступа к частной сети, такой как корпоративная интрасеть. |
QNetworkConfiguration::ServiceSpecificPurpose |
3 |
Конфигурация может использоваться для операторских сервисов (например, для получения MMS-сообщений или потокового контента). |
enum QNetworkConfiguration::StateFlagflags QNetworkConfiguration::StateFlags
Определяет состояния конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::Undefined |
0x0000001 |
Это состояние используется для временных конфигураций, таких как недавно обнаруженные сети Wi-Fi, для которых пользователь ещё не создал конфигурацию. |
QNetworkConfiguration::Defined |
0x0000002 |
Определённые конфигурации известны системе, но не могут быть немедленно использованы (например, настроенная сеть Wi-Fi находится вне зоны действия или сетевой кабель не подключён к компьютеру). |
QNetworkConfiguration::Discovered |
0x0000006 |
Обнаруженную конфигурацию можно немедленно использовать для создания новой QNetworkSession. Пример обнаруженной конфигурации — сеть Wi-Fi, находящаяся в зоне действия. Если устройство выходит из зоны действия, флаг обнаружения сбрасывается. Второй пример — конфигурация GPRS, которая обычно остаётся обнаруженной, пока устройство имеет сетевой доступ. Если конфигурация относится к сетевому сервису, этот флаг устанавливается, если хотя бы одна из базовых конфигураций точек доступа имеет состояние Обнаружена. |
QNetworkConfiguration::Active |
0x000000e |
Конфигурация в настоящее время используется открытой сетевой сессией (см. QNetworkSession::isOpen()). Однако это не означает, что текущий процесс создал открытую сессию. Это просто указывает, что если была бы создана новая QNetworkSession на основе этой конфигурации, QNetworkSession::state() возвращала бы QNetworkSession::Connected. Это состояние подразумевает состояние QNetworkConfiguration::Discovered. |
Тип StateFlags — это синоним для QFlags<StateFlag>. Он хранит логическое ИЛИ комбинацию значений StateFlag.
enum QNetworkConfiguration::Type
Этот перечисление описывает тип конфигурации.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::InternetAccessPoint |
0 |
Конфигурация указывает подробности для одной точки доступа. Обратите внимание, что конфигурации типа InternetAccessPoint могут быть частью других QNetworkConfigurations типа ServiceNetwork. |
QNetworkConfiguration::ServiceNetwork |
1 |
Конфигурация основана на группе QNetworkConfigurations типа InternetAccessPoint. Все члены группы могут достигать одной и той же целевой сети. Этот тип конфигурации является обязательным для поддерживающих роуминг сетевых сессий. В некоторых платформах этот тип конфигурации может также называться Service Network Access Point (SNAP). |
QNetworkConfiguration::UserChoice |
2 |
Конфигурация является заглушкой, которая будет решена до фактической конфигурации платформой при открытии сессии. В зависимости от платформы это может вызвать диалоговое окно, запрашивающее у пользователя предпочтительный выбор. |
QNetworkConfiguration::Invalid |
3 |
Конфигурация недействительна. |
Документация по функциям-членам
QNetworkConfiguration::QNetworkConfiguration()
Создаёт объект недействительной конфигурации.
См. также isValid().
QNetworkConfiguration::QNetworkConfiguration(const QNetworkConfiguration &other)
Создаёт копию объекта QNetworkConfiguration, содержащегося в other.
QNetworkConfiguration::~QNetworkConfiguration()
Освобождает ресурсы, связанные с объектом QNetworkConfiguration.
QNetworkConfiguration::BearerType QNetworkConfiguration::bearerType() const
Возвращает тип носителя, используемый этой сетевой конфигурацией.
Если тип носителя неизвестен, функция bearerTypeName() может быть использована для получения текстового имени типа носителя.
Недействительная сетевая конфигурация всегда возвращает значение BearerUnknown.
См. также bearerTypeName() и bearerTypeFamily().
QNetworkConfiguration::BearerType QNetworkConfiguration::bearerTypeFamily() const
Возвращает семейство типов носителя, используемое этой сетевой конфигурацией. В следующей таблице показано, как значения bearerType() сопоставляются со значениями bearerTypeFamily():
| тип носителя | семейство типов носителя |
|---|---|
| BearerUnknown, Bearer2G, BearerEthernet, BearerWLAN, BearerBluetooth | (тот же тип) |
| BearerCDMA2000, BearerEVDO, BearerWCDMA, BearerHSPA, Bearer3G | Bearer3G |
| BearerWiMAX, BearerLTE, Bearer4G | Bearer4G |
Недействительная сетевая конфигурация всегда возвращает значение BearerUnknown.
Эта функция была введена в Qt 5.2.
См. также bearerType() и bearerTypeName().
QString QNetworkConfiguration::bearerTypeName() const
Возвращает тип носителя, используемого этой сетевой конфигурацией, в виде строки.
Строка не переведена и поэтому не может быть показана пользователю. Последующая таблица показывает фиксированные соответствия между BearerType и именем типа носителя для известных типов. Если BearerType неизвестен, эта функция может вернуть дополнительную информацию, если она доступна; в противном случае будет возвращена пустая строка.
| BearerType | Значение |
|---|---|
| BearerUnknown | Сессия основана на неизвестном или неопределённом типе носителя. Значение возвращаемой строки описывает тип носителя. |
| BearerEthernet | Ethernet |
| BearerWLAN | WLAN |
| Bearer2G | 2G |
| Bearer3G | 3G |
| Bearer4G | 4G |
| BearerCDMA2000 | CDMA2000 |
| BearerWCDMA | WCDMA |
| BearerHSPA | HSPA |
| BearerBluetooth | Bluetooth |
| BearerWiMAX | WiMAX |
| BearerEVDO | EVDO |
| BearerLTE | LTE |
Эта функция возвращает пустую строку, если это недействительная конфигурация, сетевая конфигурация типа QNetworkConfiguration::ServiceNetwork или QNetworkConfiguration::UserChoice.
См. также bearerType() и bearerTypeFamily().
QList<QNetworkConfiguration> QNetworkConfiguration::children() const
Возвращает все подконфигурации этой сетевой конфигурации в порядке приоритета. Первая подконфигурация в списке имеет наивысший приоритет.
Только сетевые конфигурации типа ServiceNetwork могут иметь подконфигурации. В противном случае эта функция возвращает пустой список.
int QNetworkConfiguration::connectTimeout() const
Возвращает таймаут подключения этой конфигурации.
Эта функция была введена в Qt 5.9.
См. также setConnectTimeout.
QString QNetworkConfiguration::identifier() const
Возвращает уникальный и платформенно-специфический идентификатор для этой сетевой конфигурации; в противном случае пустую строку.
bool QNetworkConfiguration::isRoamingAvailable() const
Возвращает true , если эта конфигурация поддерживает роуминг; в противном случае false.
bool QNetworkConfiguration::isValid() const
Возвращает true , если этот объект QNetworkConfiguration является допустимым. Конфигурация может стать недопустимой, если пользователь удаляет конфигурацию или конфигурация была создана по умолчанию.
Добавление и удаление конфигураций можно отслеживать с помощью QNetworkConfigurationManager.
См. также QNetworkConfigurationManager.
QString QNetworkConfiguration::name() const
Возвращает видимое пользователю имя этой конфигурации.
Имя может быть именем базовой точки доступа или именем сетевой службы, которую представляет эта конфигурация.
QNetworkConfiguration::Purpose QNetworkConfiguration::purpose() const
Возвращает назначение этой конфигурации.
Поле назначения может использоваться для программно определения назначения конфигурации. Такая информация обычно является частью метаданных точки доступа или сетевой службы.
bool QNetworkConfiguration::setConnectTimeout(int timeout)
Устанавливает таймаут подключения этой конфигурации на timeout. Это позволяет контролировать таймаут, используемый QAbstractSocket для установления соединения.
Предупреждение: Это не повлияет, если плагин носителя не имеет возможности CanStartAndStopInterfaces.
Возвращает true, если успешно.
Эта функция была введена в Qt 5.9.
См. также connectTimeout.
QNetworkConfiguration::StateFlags QNetworkConfiguration::state() const
Возвращает текущее состояние конфигурации.
void QNetworkConfiguration::swap(QNetworkConfiguration &other)
Меняет местами эту сетевую конфигурацию с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была введена в Qt 5.0.
QNetworkConfiguration::Type QNetworkConfiguration::type() const
Возвращает тип конфигурации.
Конфигурация может представлять отдельную конфигурацию точки доступа или набор конфигураций точек доступа. Такой набор называется сетевой службой. Конфигурация, основанная на сетевой службе, потенциально может поддерживать роуминг сетевых сессий.
bool QNetworkConfiguration::operator!=(const QNetworkConfiguration &other) const
Возвращает true , если эта конфигурация не такая же, как other указанная конфигурация; в противном случае возвращает false.
QNetworkConfiguration &QNetworkConfiguration::operator=(QNetworkConfiguration &&other)
Оператор перемещающей присваивания.
QNetworkConfiguration &QNetworkConfiguration::operator=(const QNetworkConfiguration &other)
Копирует содержимое объекта QNetworkConfiguration, содержащегося в other, в этот.
bool QNetworkConfiguration::operator==(const QNetworkConfiguration &other) const
Возвращает true, если эта конфигурация такая же, как заданная other конфигурация; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qnetworkconfiguration.html