如何打开到WiFi AP的QNetworkSession,以指定要使用的物理接口?

时间:2019-05-21 14:01:34

标签: qt qt5

我的计算机有2个wlan接口:一个集成(“ Wi-Fi”)和一个外部适配器(“ Wi-Fi 2”)。如何使我的Qt应用程序通过第二个接口建立与给定访问点(AP)的连接?

我想确保第一个接口始终用于连接到Internet(我的ISP路由器),而第二个接口用于连接到第三方设备(本身是Wi-Fi AP)

以下代码连接到AP(SSID = DeviceRouter)。但是我不知道如何强制使用辅助接口(Wi-Fi 2)。

// My target SSID and interface (let's assume this is an open AP)
QString ssid = "DeviceRouter";
QString interface = "Wi-Fi 2";  // I want to use my secondary interface

// Get all configurations
QNetworkConfigurationManager mgr;
mgr.updateConfigurations();
waitForSignal( &mgr, SIGNAL( updateCompleted() ), 20000 ); // implemented elsewhere
QList<QNetworkConfiguration> allConfigs = mgr.allConfigurations();

// Select the configuration matching my target SSID
bool connected = false;
foreach( QNetworkConfiguration config, allConfigs ) {
    if( config.name() == ssid && config.bearerType == QNetworkConfiguration::BearerWLAN ) {
        QNetworkSession s( config );
        // How can I set the interface for the session?
        s.open();
        connected = w.waitForOpened( 30000 );
        if( connected ) {
            qDebug() << "You're connected on interface: " << s.interface().humanReadableName();
        }
        break;
    }
}

因此,输出始终为You're connected on interface: Wi-Fi 2

0 个答案:

没有答案