main: Send beacons to the all-nodes link-local multicast group

This commit is contained in:
mirsal 2021-03-31 21:26:36 +00:00
parent 0cfc123011
commit a49c5123ae
1 changed files with 5 additions and 1 deletions

View File

@ -1,5 +1,5 @@
use async_std::{fs, task};
use async_std::net::UdpSocket;
use async_std::net::{UdpSocket, Ipv6Addr};
use async_std::path::PathBuf;
use async_std::sync::Arc;
use clap::{load_yaml, App};
@ -15,8 +15,11 @@ type Config = toml::map::Map<String, toml::Value>;
async fn peer_discovery_recv() {
let socket = UdpSocket::bind(":::8008").await.unwrap();
let all_nodes_addr = Ipv6Addr::new(0xFF02, 0, 0, 0, 0, 0, 0, 0x02);
let mut buf = [0u8; 1024];
socket.join_multicast_v6(&all_nodes_addr, 0).unwrap();
loop {
let (amt, peer) = socket.recv_from(&mut buf).await.unwrap();
let buf = &mut buf[..amt];
@ -39,6 +42,7 @@ async fn peer_discovery_send(pubkey: Arc<String>) {
loop {
println!("Sending packet: {:?}", &msg);
socket.send_to(&buf, "255.255.255.255:8008").await.unwrap();
socket.send_to(&buf, "[FF02::2]:8008").await.unwrap();
task::sleep(std::time::Duration::from_secs(1)).await;
}
}