blob: b42eab3482c815d078da2f449e62716a2d5d6645 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
use std::net::UdpSocket;
use std::str;
const MULTICAST_ADDRESS: &'static str = "239.255.255.250:1900";
const SEARCH_REQUEST: &'static str = "M-SEARCH * HTTP/1.1\r\n
Host: 239.255.255.250:1900\r\n
Man: \"ssdp:discover\"\r\n
ST: ssdp:all\r\n
MX: 3\r\n
User-Agent: slingr/0.1.0\r\n\r\n";
pub fn discover() {
println!("Discovering...");
let socket = UdpSocket::bind("[::]:0").unwrap();
socket.send_to(SEARCH_REQUEST.as_bytes(), MULTICAST_ADDRESS).expect("couldn't send data");
let mut buf = [0; 1024];
loop {
let (amt, _src) = socket.recv_from(&mut buf).expect("Didn't receive data...");
let filled_buf = &mut buf[..amt];
let s = str::from_utf8(filled_buf).unwrap();
println!("Got: {}\n\n", s);
}
}
|