Класс QNetworkConfiguration
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точек доступа. Подробнее...
| Заголовок: | #include <QNetworkConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
Этот класс устарел. Он предоставляется для поддержки работы старого исходного кода. Мы настоятельно рекомендуем не использовать его в новом коде.
Этот класс был представлен в Qt 4.7.
Типы public
| Перечисление | ТипНосителя { НеизвестныйТипНосителя, Ethernet, WLAN, 2G, 3G, …, LTE } |
| Перечисление | Цель { НеизвестнаяЦель, ОбщедоступнаяЦель, ЧастнаяЦель, ЦельУслуг } |
| Перечисление | ФлагСостояния { Неопределено, Определено, Обнаружено, Активно } |
| Флаги | ФлагиСостояния |
| Перечисление | Тип { ТочкаДоступаВИнтернет, СетеваяУслуга, ВыборПользователя, Неверно } |
Функции public
| QNetworkConfiguration(const QNetworkConfiguration &other) | |
| QNetworkConfiguration() | |
| QNetworkConfiguration & | operator=(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 |
| bool | operator==(const QNetworkConfiguration &other) const |
Подробное описание
QNetworkConfiguration инкапсулирует отдельную точку доступа или сетевую службу. В большинстве случаев конфигурация одной точки доступа может быть сопоставлена с одним сетевым интерфейсом. Однако один сетевой интерфейс не всегда может быть сопоставлен только с одной конфигурацией точки доступа. Несколько конфигураций для одного сетевого устройства могут активировать несколько точек доступа. Примером устройства, которое может демонстрировать такую конфигурацию, может быть смартфон, который позволяет пользователю управлять несколькими конфигурациями WLAN, в то время как само устройство имеет только одно сетевое устройство WLAN.
QNetworkConfiguration также поддерживает понятие сетевых служб. Это понятие позволяет группировать несколько конфигураций точек доступа в один объект. Такая группа называется сетевой службой и может быть полезна в тех случаях, когда требуется сетевая сессия с конкретным целевым сегментом сети (например, корпоративная сеть). При использовании сетевой службы пользователю обычно не важно, какой из вариантов подключения выбран (например, корпоративная сеть Wi-Fi или VPN через GPRS), пока он может достичь целевого сервера компании. В зависимости от текущего местоположения и времени некоторые из точек доступа, составляющих сетевую службу, могут быть недоступны. Кроме того, можно включить автоматическое перемещение по точкам доступа, что позволяет устройству динамически изменять конфигурацию сетевого интерфейса, сохраняя при этом подключение приложения к целевой сети. Это позволяет адаптироваться к изменяющейся среде и может оптимизировать затраты, скорость или другие сетевые параметры.
Специальные конфигурации типа ВыборПользователя предоставляют конфигурацию-заполнитель, которая разрешается платформой в фактическую конфигурацию сети, когда сессия сессии открывается. Не все платформы поддерживают концепцию конфигурации выбора пользователя.
Состояния конфигурации
Список доступных конфигураций можно получить с помощью QNetworkConfigurationManager::allConfigurations(). Конфигурация может иметь несколько состояний. Состояние конфигурации Определено указывает на то, что конфигурация сохранена на устройстве. Однако конфигурация еще не готова к активации, поскольку, например, сеть Wi-Fi может быть недоступна в данный момент.
Состояние Обнаружено подразумевает, что конфигурация Определена, и внешние условия таковы, что конфигурацию можно немедленно использовать для открытия новой сетевой сессии. Примером такого внешнего условия может быть то, что сетевой кабель фактически подключен к устройству или что сеть Wi-Fi с заданным идентификатором сети находится в зоне действия.
Состояние Активно подразумевает, что конфигурация Обнаружена. Конфигурация в этом состоянии в настоящее время используется приложением. У базового сетевого интерфейса есть действительная конфигурация IP и он может передавать пакеты IP между устройством и целевой сетью.
Состояние Неопределено указывает на то, что система знает о возможных целевых сетях, но не может фактически использовать эти знания для подключения к ним. Примером такого состояния может быть зашифрованная сеть Wi-Fi, которая была обнаружена, но пользователь фактически не сохранил конфигурацию, включающую необходимый пароль, который позволил бы устройству подключиться к ней.
В зависимости от типа конфигурации некоторые состояния носят переходный характер. Подключение GPRS/UMTS почти всегда может быть Обнаружено, если сеть GSM/UMTS доступна. Однако если сеть GSM/UMTS потеряет соединение, связанная конфигурация может изменить свое состояние с Обнаружено на Определено. Аналогичный сценарий может быть вызван доступностью сети Wi-Fi. QNetworkConfigurationManager::updateConfigurations() можно использовать для ручного запуска обновлений состояния. Обратите внимание, что некоторые платформы не требуют таких обновлений, так как они неявно изменяют состояние после обнаружения. Если состояние конфигурации изменяется, все связанные экземпляры QNetworkConfiguration автоматически изменяют свое состояние.
См. также QNetworkSession и QNetworkConfigurationManager.
Документация по типам членов
Перечисление QNetworkConfiguration::ТипНосителя
Указывает тип носителя, используемого конфигурацией.
| Константа | Значение | Описание |
|---|---|---|
QNetworkConfiguration::BearerUnknown |
0 |
Тип носителя неизвестен или не указан. Функция bearerTypeName() может вернуть дополнительную информацию. |
QNetworkConfiguration::BearerEthernet |
1 |
Конфигурация предназначена для интерфейсов Ethernet. |
QNetworkConfiguration::BearerWLAN |
2 |
Конфигурация предназначена для беспроводного интерфейса LAN. |
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 |
Это состояние используется для временных конфигураций, таких как недавно обнаруженные сети WLAN, для которых пользователь ещё не создал конфигурацию. |
QNetworkConfiguration::Defined |
0x0000002 |
Определенные конфигурации известны системе, но не могут быть немедленно использованы (например, настроенная сеть WLAN не находится в радиусе действия или кабель Ethernet не подключен к компьютеру). |
QNetworkConfiguration::Discovered |
0x0000006 |
Обнаруженная конфигурация может быть немедленно использована для создания нового QNetworkSession. Примером обнаруженной конфигурации может служить сеть WLAN, находящаяся в радиусе действия. Если устройство выходит из зоны действия, флаг обнаружения сбрасывается. Ещё один пример — конфигурация GPRS, которая обычно остается обнаруженной до тех пор, пока устройство имеет сетевое покрытие. Конфигурация, имеющая это состояние, также находится в состоянии QNetworkConfiguration::Defined. Если конфигурация является сетевым сервисом, этот флаг устанавливается, если хотя бы одна из конфигураций базовых точек доступа имеет состояние Discovered. |
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(const QNetworkConfiguration &other)
Создаёт копию объекта QNetworkConfiguration, содержащегося в other.
QNetworkConfiguration::QNetworkConfiguration()
Конструирует объект недействительной конфигурации.
См. также isValid().
QNetworkConfiguration &QNetworkConfiguration::operator=(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 для установления соединения.
Примечание: timeout в миллисекундах.
Предупреждение: Это не повлияет, если плагин носителя не имеет возможности 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.
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/qt-5.15/qnetworkconfiguration.html