1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
use std::{env, net::SocketAddr};
use tokio_uring::net::UdpSocket;
fn main() {
let args: Vec<_> = env::args().collect();
if args.len() <= 1 {
panic!("no addr specified");
}
let socket_addr: SocketAddr = args[1].parse().unwrap();
tokio_uring::start(async {
let socket = UdpSocket::bind(socket_addr).await.unwrap();
let buf = vec![0u8; 128];
let (result, mut buf) = socket.recv_from(buf).await;
let (read, socket_addr) = result.unwrap();
buf.resize(read, 0);
println!("received from {}: {:?}", socket_addr, &buf[..]);
let (result, _buf) = socket.send_to(buf, socket_addr).await;
println!("sent to {}: {}", socket_addr, result.unwrap());
});
}
|