首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时更改网络接口

在运行时更改网络接口
EN

Stack Overflow用户
提问于 2014-11-30 12:16:31
回答 1查看 411关注 0票数 2

我正在用qt5编写一个小应用程序。此应用程序每分钟从API服务器获得答复。每件事都很好,但我碰到了一个bug。

在测试应用程序时,我发现如果我的无线再次断开和重新连接,应用程序将正常工作。另外,如果我使用我的宽带连接,连接是断开和重新连接,每件事也很好。现在,如果我在应用程序启动时使用我的无线,然后我断开无线连接,连接我的宽带,程序将看不到宽带连接,并不断给我网络错误。

我使用一个QNetworkAccessManager实例作为连接。有趣的是,如果我为每个请求创建了一个新的QNetworkAccessManager实例,应用程序就会正常工作。但是,我认为为每个请求声明一个新实例和建立连接都会有开销。我还试图在请求之前使用clearAccessCache(),但没有任何结果。

因此,基本上,我是在寻找一些东西,以重置QNetworkAccessManager与每个请求。下面是我的请求的示例代码:

代码语言:javascript
复制
// At class construct
manager = new QNetworkAccessManager(this);
// ....
// At member function
url = new QUrl("http://www.gridstatusnow.com/status");
manager->get(QNetworkRequest(*url));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-30 13:44:11

只有当网络不可访问时,才能尝试重新创建QNetworkAccessManager

代码语言:javascript
复制
// At member function
if (manager->networkAccessible() == QNetworkAccessManager::NotAccessible)
{
    delete manager;
    manager = new QNetworkAccessManager(this);
}

文献资料解释道:

默认情况下,此属性的值反映设备的物理状态。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27213136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档