在C#中检测网络状态(已连接 – 已断开连接)

我需要一段代码来检测网络连接是连接还是断开连接。 连接状态意味着电缆已插入以太网连接。 断开状态意味着没有连接电缆。

由于我在Windows CE上运行,我无法使用WMI界面。 我不介意调用Win32 API但请记住我正在使用Windows CE并在Compact Framework上运行。

看看这篇MSDN文章:

在.NET Compact Framework中测试和响应网络连接

最简单的方法是使用OpenNETCF的SDF并查看OpenNETCF.Net.NetworkInformation.NetworkInterfaceWatcher类 ,它将在NDIS发出通知时引发事件(如MEDIA_CONNECT和MEDIA_DISCONNECT)。

当然,没有SDF,你可以做同样的工作。 它涉及直接加强NDIS驱动程序并使用P2P消息队列句柄调用IOCTL_NDISUIO_REQUEST_NOTIFICATION 。 这并不是太难,但是你需要做很多工作而不是泄漏。

调用GetAdaptersInfo并遍历可用网络适配器列表,直到找到您要查找的网络适配器?

要记住的一件事是网络连接等于互联网连接。

这听起来像你已经得到了,因为你定义连接的意思是“电缆插入以太网连接”,但它需要重复。