gpt4 book ai didi

c# - 使用托管 API 关闭 WiFi 连接

转载 作者:行者123 更新时间:2023-12-03 09:35:26 27 4
gpt4 key购买 nike

我正在使用 Managed WiFi API 编写程序.以下是我如何获得范围内的所有网络:

    void UpdateNetworks()
{
networks = new List<Wlan.WlanAvailableNetwork>();
WlanClient client = new WlanClient();
foreach(WlanClient.WlanInterface iface in client.Interfaces)
{
Wlan.WlanAvailableNetwork[] nets = iface.GetAvailableNetworkList(0);
foreach(Wlan.WlanAvailableNetwork net in nets)
networks.Add(net);
}
}

问题是调用此方法 18 次后我无法再连接:

(0x80004005): An attempt was made to establish a session to a network server, but there are already too many sessions established to that server.

这是抛出异常的构造函数:

    public WlanClient()
{
Wlan.ThrowIfError(
Wlan.WlanOpenHandle(Wlan.WLAN_CLIENT_VERSION_XP_SP2, IntPtr.Zero, out negotiatedVersion, out clientHandle));
try
{
Wlan.WlanNotificationSource prevSrc;
wlanNotificationCallback = new Wlan.WlanNotificationCallbackDelegate(OnWlanNotification);
Wlan.ThrowIfError(
Wlan.WlanRegisterNotification(clientHandle, Wlan.WlanNotificationSource.All, false, wlanNotificationCallback, IntPtr.Zero, IntPtr.Zero, out prevSrc));
}
catch
{
Wlan.WlanCloseHandle(clientHandle, IntPtr.Zero);
throw;
}
}

我相信这是因为客户端永远不会关闭它打开的连接。如何明确关闭它们? catch block 中有句柄关闭,但它需要访问客户端的私有(private)部分。

最佳答案

我也遇到了同样的问题。我尝试了 Joe White 先生的解决方案,但收到一个错误消息,指出 wlanClient 无法转换为 System.IDisposable。
由于此问题与 WlanClient 实例的处理有关,因此我只将 1 个实例定义为类成员,并在方法 [void UpdateNetworks()] 中多次使用它。我没有收到任何错误。
删除行

WlanClient client = new WlanClient();

从您的方法中获取并在您的类中定义它。像下面这样:

public partial class frm_main : Form
{
private WlanClient client = new WlanClient();

private void UpdateNetworks()
{
var networks = new List<Wlan.WlanAvailableNetwork>();
foreach (WlanClient.WlanInterface iface in client.Interfaces)
{
Wlan.WlanAvailableNetwork[] nets = iface.GetAvailableNetworkList(0);
foreach (Wlan.WlanAvailableNetwork net in nets)
networks.Add(net);
}
MessageBox.Show(networks.Count.ToString());
}
}

引用:Managed WiFi error

关于c# - 使用托管 API 关闭 WiFi 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6238553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com