Класс QNetworkConfiguration
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точки доступа. Подробнее...
| Заголовок: | #include <QNetworkConfiguration> |
| qmake: | QT += network |
| С момента: | Qt 4.7 |
Открытые типы
| Перечисление | ТипНосителя { ТипНосителяНеизвестен, ТипНосителяEthernet, ТипНосителяWLAN, ТипНосителя2G, ..., ТипНосителяLTE } |
| Перечисление | Назначение { НеизвестноеНазначение, ОбщественноеНазначение, ЧастноеНазначение, НазначениеУслуги } |
| Перечисление | ФлагСостояния { Неопределено, Определено, Обнаружено, Активно } |
| Флаги | ФлагиСостояния |
| Перечисление | Тип { ТочкаДоступаВИнтернет, СетьУслуги, ВыборПользователя, Недействительный } |
Открытые функции
| 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 | неРавно(const QNetworkConfiguration &other) const |
| QNetworkConfiguration & | присвоить(QNetworkConfiguration &&other) |
| QNetworkConfiguration & | присвоить(const QNetworkConfiguration &other) |
| bool | равно(const QNetworkConfiguration &other) const |
Подробное описание
Класс QNetworkConfiguration предоставляет абстракцию одной или нескольких конфигураций точки доступа.
QNetworkConfiguration инкапсулирует одну точку доступа или сеть услуги. В большинстве случаев одна конфигурация точки доступа может быть сопоставлена одному сетевому интерфейсу. Однако один сетевой интерфейс не всегда может быть сопоставлен только с одной конфигурацией точки доступа. Несколько конфигураций для одного сетевого устройства могут активировать несколько точек доступа. Пример устройства, которое может иметь такую конфигурацию, может быть смартфоном, который позволяет пользователю управлять несколькими конфигурациями WLAN, в то время как само устройство имеет только одно устройство сети WLAN.
Класс QNetworkConfiguration также поддерживает концепцию сетей услуг. Эта концепция позволяет группировать несколько конфигураций точек доступа в один объект. Такая группа называется сетью услуг и может быть полезна в тех случаях, когда требуется сетевая сессия к определенной целевой сети (например, корпоративная сеть). При использовании сети услуг пользователю обычно неважно, какой из вариантов подключения выбран (например, корпоративная сеть WLAN или VPN через GPRS), пока он может достичь целевого сервера компании. В зависимости от текущего местоположения и времени некоторые из точек доступа, которые составляют сеть услуг, могут даже быть недоступны. Кроме того, можно включить автоматическое роуминг точек доступа, что позволяет устройству динамически изменять конфигурацию сетевого интерфейса, сохраняя при этом подключение приложения к целевой сети. Это позволяет адаптироваться к изменяющейся среде и может обеспечить оптимизацию с точки зрения затрат, скорости или других параметров сети.
Специальные конфигурации типа ВыборПользователя предоставляют конфигурацию-заполнитель, которая разрешается в фактическую конфигурацию сети платформой при открытии сессии. Не все платформы поддерживают концепцию конфигурации выбора пользователя.
Состояния конфигурации
Список доступных конфигураций можно получить с помощью QNetworkConfigurationManager::allConfigurations(). Конфигурация может иметь несколько состояний. Состояние конфигурации Определено указывает, что конфигурация сохранена на устройстве. Однако конфигурация еще не готова к активации, например, WLAN может быть недоступен в данный момент.
Состояние Обнаружено подразумевает, что конфигурация Определена и внешние условия таковы, что конфигурация может быть использована немедленно для открытия новой сетевой сессии. Примером таких внешних условий может быть подключение кабеля Ethernet к устройству или наличие WLAN с указанным SSID в радиусе действия.
Состояние Активно подразумевает, что конфигурация Обнаружена. Конфигурация в этом состоянии в настоящее время используется приложением. Сетевой интерфейс имеет действительную IP-конфигурацию и может передавать IP-пакеты между устройством и целевой сетью.
Состояние Неопределено указывает, что система знает о возможных целевых сетях, но не может фактически использовать эти знания для подключения к ним. Примером такого состояния может быть зашифрованная сеть WLAN, которая была обнаружена, но пользователь фактически не сохранил конфигурацию, включающую необходимый пароль, который позволил бы устройству подключиться к ней.
В зависимости от типа конфигурации некоторые состояния носят временный характер. Подключение GPRS/UMTS почти всегда может быть Обнаружено, если доступна сеть GSM/UMTS. Однако если сеть GSM/UMTS теряет подключение, связанная конфигурация может изменить свое состояние с Обнаружено на Определено. Аналогичный сценарий может быть вызван доступностью 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 для установления соединения.
Примечание: 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.
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/qt-5.12/qnetworkconfiguration.html