c++ - 如何检测 win32 上的数据卡连接和断开事件?

标签 c++ c winapi networking network-programming

我有一张数据卡,只要我插入数据卡,我就会通过使用 wm_device_change 事件获取事件。

但我也想获得事件,当我的数据连接实际连接到外部世界时。

我的意思是说,只要我们点击数据卡的连接/断开按钮,我就想获取事件。换句话说,我想知道连接何时建立和断开。

数据卡是Vodaphone数据卡,我正在尝试使用该数据卡进行浏览。无论 SDK 是什么,操作系统应该在某个地方获取网络连接和断开连接的事件,是否有任何方法可以访问操作系统正在获取的事件。正如我在通知中看到的 Vodaphone 连接和 LAN 连接的变化。

数据卡是一种内置SIM卡的USB设备,可用于通过GPRS上网。

如何在 Win32 C/C++ 程序中执行此操作?

最佳答案

要检测网络变化,您可以使用 NotifyAddrChange(0,0); 因为这是阻塞的,所以您需要一个线程。线程函数可以简单到

while(true) {
  NotifyAddrChange(0,0);
  PostMessage(gHWnd, WM_APP,0,0);
}

不要理会记录在案的异步行为。那根本行不通。

关于c++ - 如何检测 win32 上的数据卡连接和断开事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056784/

相关文章:

c - 我该如何处理这个段错误

c - 为什么 C 头文件中的全局变量定义有效?

c++ - 指针是否允许在单继承中更改值?

c++ - Stringstream 没有输入添加了结束符的字符串

c - mmap 总线错误写入超过 2Gb 的 MAP_SHARED 文件

python - 从其值中检索类属性/常量名称 - Python

c++ - SetThreadExecutionState with ES_CONTINUOUS - 如果应用程序在重置标志之前崩溃会发生什么

c++ - 在 win32 C++ 编程中如何复制窗口样式?

c++ - 创建一个包含 30 亿个 uint8 元素的 vector

c++ - Memcpy 字符指针