【发布时间】:2021-12-31 21:42:59
【问题描述】:
我正在尝试在 rust 中接收 dhcp6 消息。这是我现在的代码:
use std::net::UdpSocket;
use std::net::Ipv6Addr;
fn main() -> std::io::Result<()> {
{
let socket = UdpSocket::bind("[::]:547")?;
let mult: Ipv6Addr = "ff02::1:2".parse().unwrap();
socket.join_multicast_v6(&mult, 0)?;
let mut buf = [0; 65_535];
let (amt, src) = socket.recv_from(&mut buf)?;
let res = parser::header(&buf).unwrap();
println!("{:?}", res);
}
Ok(())
}
它设法接收与例如发送的单播消息。 echo "Hello"| socat -t 10 - udp6:[::1]:547,在 tcpdump 中显示为 IP6 localhost.57028 > localhost.dhcpv6-server: dhcp6 msgtype-72,但对于 dhcp6 消息(例如在 tcpdump 中显示为 IP6 fe80::20e:7bff:febb:a38a.dhcpv6-client > ff02::1:2.dhcpv6-server: dhcp6 solicit),没有接收到数据。
我错过了什么吗?
【问题讨论】:
标签: sockets networking rust udp dhcp