c++ - 捕获网络状态变化事件

标签 c++ windows network-programming wxwidgets connectivity

我正在尝试在互联网连接丢失后重新建立时获取事件。它用于我正在开发的数据传输软件。如果我在数据传输过程中失去了网络,我希望在恢复时收到通知并自动继续传输。

我当然可以创建一个单独的线程并使用计时器偶尔检查一次网络,但也许有更好的选择。

我主要使用 C++(不是 .net)为 Windows 开发。

我也可以使用 wxwidgets(我将它用于 GUI),但我怀疑它是否提供任何相关功能。

最佳答案

您可能想查看系统事件通知服务器 (SENS) API http://msdn.microsoft.com/en-us/library/cc185680(VS.85).aspx

我没有实际使用过它,但它似乎提供了您要查找的事件。

编辑:

WMI 似乎拥有您需要的有关各种网络连接和状态更改的所有信息。它还具有可用于获取通知的异步事件模型。我想,诀窍是生成正确的 WMI 查询以获取所需的信息。这blog看起来是正确的查询类型,这个 MSDN解释了如何异步处理事件。

关于c++ - 捕获网络状态变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101041/

相关文章:

linux - 多播 ip 地址 - 在调用 recvfrom 时被阻止

c++ - 通过唯一的成员 ID 来标识对象是个好主意吗?

javascript - 使用 JavaScript/JQuery 打开最大化新窗口的最快方法?

C++ 将 FILE * 作为参数传递给函数

c++ - 如何编写监听网络流量的程序? (即 wireshark)

对外暴露的 Docker 端口

c++ - 当绑定(bind)对象过期时,由 std::bind 创建的仿函数的行为是否定义明确?

c++ - 采用左值操作数的运算符的结果是一个左值,表示该左值操作数?

c++ - 在我的 Cmake 项目中使用 Eigen Lib?

C# Windows App 如何从 WebView 获取 html 源代码