File: udp_socket.rs

package info (click to toggle)
rust-tokio-uring 0.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 828 kB
  • sloc: makefile: 2
file content (26 lines) | stat: -rw-r--r-- 743 bytes parent folder | download | duplicates (2)
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());
    });
}