diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2022-12-23 18:00:28 +0100 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2022-12-23 18:00:28 +0100 |
commit | 976be3aa3b50ef7721fce2d38ed5855ed64a719a (patch) | |
tree | e9f5ad1ff35f1f686473e0224e263462b027f5e1 /src/client.rs | |
parent | 7b7721a8b5c73cef37d75a6f96e2d8a55668bbd5 (diff) | |
download | mt_rudp-976be3aa3b50ef7721fce2d38ed5855ed64a719a.tar.xz |
async
Diffstat (limited to 'src/client.rs')
-rw-r--r-- | src/client.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/client.rs b/src/client.rs index 81c1bfb..97a18d7 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,13 +1,14 @@ use crate::*; -use std::{io, net, sync::Arc}; +use std::{io, sync::Arc}; +use tokio::net; pub struct Sender { sock: Arc<net::UdpSocket>, } impl UdpSender for Sender { - fn send(&self, data: Vec<u8>) -> io::Result<()> { - self.sock.send(&data)?; + async fn send(&self, data: Vec<u8>) -> io::Result<()> { + self.sock.send(&data).await?; Ok(()) } } @@ -17,20 +18,20 @@ pub struct Receiver { } impl UdpReceiver for Receiver { - fn recv(&self) -> io::Result<Vec<u8>> { + async fn recv(&self) -> io::Result<Vec<u8>> { let mut buffer = Vec::new(); buffer.resize(UDP_PKT_SIZE, 0); - let len = self.sock.recv(&mut buffer)?; + let len = self.sock.recv(&mut buffer).await?; buffer.truncate(len); Ok(buffer) } } -pub fn connect(addr: &str) -> io::Result<(RudpSender<Sender>, RudpReceiver<Sender>)> { - let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0")?); - sock.connect(addr)?; +pub async fn connect(addr: &str) -> io::Result<(RudpSender<Sender>, RudpReceiver<Sender>)> { + let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0").await?); + sock.connect(addr).await?; Ok(new( PeerID::Srv as u16, |