如何在基于C++/QT的安装程序中检测Internet断开连接
问题描述:
我们正在开发与Dropbox非常相似的win-mac文件同步安装程序。安装程序是用C++和QT构建的。我们有一个使用案例,如果互联网断开连接(插入网线(或没有连接到任何无线网络)),所以基本上无法访问网络,在这种情况下,我们需要使安装程序进入脱机状态。如何在基于C++/QT的安装程序中检测Internet断开连接
我尝试了一些方法,例如不断向我们的Web服务器进行轮询。如果我们无法达到那么我们检测为互联网分离连接。由于某些原因,我们希望有一个干净的本地实现,它将寻找机器网络连接。
我甚至尝试过http://msdn.microsoft.com/en-us/library/aa965303%28VS.85%29.aspx的窗口,但这是在wifi情况下失败,即使我们不连接到WiFi这个例子说“网络连接”。
任何人都可以提出其他的选择。平台特定的解决方案也受邀
答
您可能要查看INetworkManager::GetConnectivity
,并在响应中检查NLM_CONNECTIVITY_IPV4_INTERNET
或NLM_CONNECTIVITY_IPV6_INTERNET
。
感谢您的快速回复。它的作用像魅力。 – Engineer 2013-05-01 11:21:28
但是我有一个疑问,它是否与INetworkListManager :: get_IsConnectedToInternet工作相同,因为这更直接地检查互联网连接。有关MAC OSX的任何建议? – Engineer 2013-05-01 11:22:51