如何在基于 c++/QT 的安装程序中检测互联网断开连接

Posted

技术标签:

【中文标题】如何在基于 c++/QT 的安装程序中检测互联网断开连接【英文标题】:How to detect internet disconnectivity in c++/QT based installer 【发布时间】:2013-05-01 09:46:39 【问题描述】:

我们正在开发与 Dropbox 非常相似的 win-mac 文件同步安装程序。安装程序是用 c++ 和 QT 构建的。我们有一个用例,如果互联网断开(拔掉网线(或)未连接到任何 wifi),则基本上无法访问网络,在这种情况下,我们需要使安装程序离线。

我尝试了几种方法,例如不断地轮询我们的网络服务器。如果我们无法到达,那么我们将检测为互联网断开连接。由于某些原因,我们希望有一个干净的本地实现,它将寻找机器网络连接。

我什至在 windows 上尝试过http://msdn.microsoft.com/en-us/library/aa965303%28VS.85%29.aspx,但在 wifi 情况下这会失败,即使我们没有连接到 wifi,这个例子是说“网络已连接”。

任何人都可以提出其他替代方案。还邀请了特定于平台的解决方案。

【问题讨论】:

【参考方案1】:

您可能想查看INetworkManager::GetConnectivity,并在响应中检查NLM_CONNECTIVITY_IPV4_INTERNETNLM_CONNECTIVITY_IPV6_INTERNET

【讨论】:

但是我有一个疑问,它是否与 INetworkListManager::get_IsConnectedToInternet 工作相同,因为这更容易检查互联网连接。对 MAC OSX 有什么建议吗?

以上是关于如何在基于 c++/QT 的安装程序中检测互联网断开连接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 oracle 插件部署基于 qt 的应用程序

基于MTuner软件进行qt的mingw编译程序的内存泄漏检测

在Qt编程中,如何调用C++的STL?

将 QML(QQuickView) 添加到现有 UI

如何在基于 Qt 的应用程序中正确使用 valgrind

Adobe Acrobat XI Pro 用注册机断网破解之后,一联网就要重新注册。