6个版本 (3个破坏性)
0.4.0 | 2023年2月12日 |
---|---|
0.3.1 | 2023年2月5日 |
0.2.1 | 2023年1月31日 |
0.1.0 | 2023年1月30日 |
#3 在 #适配
每月26次下载
15KB
193 代码行
WiFiDirect Legacy AP (for Windows)
这是一个Microsoft C++ WiFi Direct Legacy AP示例代码的Rust宽松适配,使用Flying Carpet进行适配,并使用Microsoft的Windows API Rust绑定编写。它是一个暴露一个结构体的库,即WlanHostedNetworkHelper
。
示例用法
使用SSID、密码、用于从Windows运行时向您的代码写入消息的消息Sender
通道,以及一个当AP启动或启动失败时发送一个bool
的成功Sender
通道的WlanHostedNetworkHelper::new()
。在需要的时间内保持返回的热点。
use std::sync::mpsc;
use std::thread::spawn;
use crate::WlanHostedNetworkHelper;
fn run_hosted_network() {
// Make channels to receive messages from Windows Runtime
let (message_tx, message_rx) = mpsc::channel::<String>();
let (success_tx, success_rx) = mpsc::channel::<bool>();
let wlan_hosted_network_helper =
WlanHostedNetworkHelper::new("WiFiDirectTestNetwork", "TestingThisLibrary", message_tx, success_tx)
.unwrap();
// Listen for messages in a thread that will exit when the hotspot is done and the sender closes
spawn(move || loop {
let msg = match message_rx.recv() {
Ok(m) => m,
Err(e) => {
println!("WiFiDirect thread exiting: {}", e);
break;
}
};
println!("{}", msg);
});
// Wait to see whether we were able to start the hotspot
let started = success_rx.recv().unwrap();
if !started {
panic!("Failed to start hotspot");
}
// Use the hosted network
std::thread::sleep(std::time::Duration::from_secs(10));
// Stop it when done
wlan_hosted_network_helper.stop().expect("Error in stop()");
}
依赖项
~130MB
~2M SLoC