From 976be3aa3b50ef7721fce2d38ed5855ed64a719a Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Fri, 23 Dec 2022 18:00:28 +0100 Subject: async --- src/client.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/client.rs') 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, } impl UdpSender for Sender { - fn send(&self, data: Vec) -> io::Result<()> { - self.sock.send(&data)?; + async fn send(&self, data: Vec) -> io::Result<()> { + self.sock.send(&data).await?; Ok(()) } } @@ -17,20 +18,20 @@ pub struct Receiver { } impl UdpReceiver for Receiver { - fn recv(&self) -> io::Result> { + async fn recv(&self) -> io::Result> { 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, RudpReceiver)> { - let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0")?); - sock.connect(addr)?; +pub async fn connect(addr: &str) -> io::Result<(RudpSender, RudpReceiver)> { + let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0").await?); + sock.connect(addr).await?; Ok(new( PeerID::Srv as u16, -- cgit v1.2.3