mirror of
https://github.com/smoltcp-rs/smoltcp.git
synced 2025-09-30 14:20:52 +00:00
22 lines
682 B
Rust
22 lines
682 B
Rust
use smoltcp::phy::wait as phy_wait;
|
|
use smoltcp::phy::{Device, RawSocket, RxToken};
|
|
use smoltcp::time::Instant;
|
|
use smoltcp::wire::{EthernetFrame, PrettyPrinter};
|
|
use std::env;
|
|
use std::os::unix::io::AsRawFd;
|
|
|
|
fn main() {
|
|
let ifname = env::args().nth(1).unwrap();
|
|
let mut socket = RawSocket::new(ifname.as_ref(), smoltcp::phy::Medium::Ethernet).unwrap();
|
|
loop {
|
|
phy_wait(socket.as_raw_fd(), None).unwrap();
|
|
let (rx_token, _) = socket.receive(Instant::now()).unwrap();
|
|
rx_token.consume(|buffer| {
|
|
println!(
|
|
"{}",
|
|
PrettyPrinter::<EthernetFrame<&[u8]>>::new("", &buffer)
|
|
);
|
|
})
|
|
}
|
|
}
|