aboutsummaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs17
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,