aboutsummaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2022-12-23 18:00:28 +0100
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2022-12-23 18:00:28 +0100
commit976be3aa3b50ef7721fce2d38ed5855ed64a719a (patch)
treee9f5ad1ff35f1f686473e0224e263462b027f5e1 /src/client.rs
parent7b7721a8b5c73cef37d75a6f96e2d8a55668bbd5 (diff)
downloadmt_rudp-976be3aa3b50ef7721fce2d38ed5855ed64a719a.tar.xz
async
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,