diff --git a/problem_04/.gitignore b/problem_04/.gitignore new file mode 100644 index 0000000..bef0727 --- /dev/null +++ b/problem_04/.gitignore @@ -0,0 +1,2 @@ +/target/ +.idea diff --git a/problem_04/Cargo.toml b/problem_04/Cargo.toml new file mode 100644 index 0000000..74cf7d9 --- /dev/null +++ b/problem_04/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "problem_04" +version = "0.1.0" +edition = "2021" + +[[bin]] +name = "server" +path = "bin/server.rs" + +[[bin]] +name = "client" +path = "bin/client.rs" + +[dependencies] +tokio = { version = "1.14.0", features = ["full"] } +tracing = "0.1.37" +tracing-subscriber = "0.3.17" diff --git a/problem_04/bin/client.rs b/problem_04/bin/client.rs new file mode 100644 index 0000000..e69de29 diff --git a/problem_04/bin/server.rs b/problem_04/bin/server.rs new file mode 100644 index 0000000..c6e9f69 --- /dev/null +++ b/problem_04/bin/server.rs @@ -0,0 +1,15 @@ +use std::io; +use tokio::net::UdpSocket; + +#[tokio::main] +async fn main() -> io::Result<()> { + let sock = UdpSocket::bind("0.0.0.0:8080").await?; + let mut buf = [0; 1024]; + loop { + let (len, addr) = sock.recv_from(&mut buf).await?; + println!("{:?} bytes received from {:?}", len, addr); + + let len = sock.send_to(&buf[..len], addr).await?; + println!("{:?} bytes sent", len); + } +} diff --git a/problem_04/src/lib.rs b/problem_04/src/lib.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/problem_04/src/lib.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}