#sonos #upnp #discovery #discover #devices #ssdp #cross-platform

bin+lib sonos_discovery

通过ssdp(UPnP发现)发现Sonos设备

2个版本

使用旧的Rust 2015

0.0.2 2019年11月17日
0.0.1 2017年8月29日

#sonos 中排名第5

MIT 许可证

9KB
91

CircleCI

Sonos发现

使用ssdp(UPnP发现)发现Sonos设备的Rust库

免责声明

目前仅适用于Unix系统。

Windows支持计划在后续版本中实现。

原因

socket 仅在Linux上工作。

使用方法

仅限Unix系统

Cargo.toml
sonos_discovery = "0.0.1"
Rust
extern crate sonos_discovery;

use sonos_discovery::Discover;
use std::net::IpAddr;

fn main() {
    let discovery: Discover = Discover::new().unwrap();
    // fn start(self, timeout: Option<u32>, device_count: Option<usize>)
    // timeout default: 5 | device_count: u32::MAX
    // Checks that {discovered_devices} < {device_count} && {elapsed_time} < {timeout}
    // Waits until 3 devices are found, or 5seconds have elapsed
    let sonos_ips: HashSet<IpAddr> = discovery.start(None, Some(3)).unwrap();
    for sonos_ip in sonos_ips {
        println!("{}", sonos_ip);
    }
}

待办事项

添加跨平台支持(Windows)

  • socket 与一个跨平台库交换
  • 使用Windows-api实现socket并创建一个简单的跨平台库

依赖项

~520KB
~11K SLoC