aboutsummaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client.rs b/src/client.rs
index c4922ec..56db92a 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -19,7 +19,7 @@ impl UdpSender for ToSrv {
#[async_trait]
impl UdpReceiver for FromSrv {
- async fn recv(&self) -> io::Result<Vec<u8>> {
+ async fn recv(&mut self) -> io::Result<Vec<u8>> {
let mut buffer = Vec::new();
buffer.resize(UDP_PKT_SIZE, 0);
@@ -30,7 +30,13 @@ impl UdpReceiver for FromSrv {
}
}
-pub async fn connect(addr: &str) -> io::Result<(RudpSender<ToSrv>, RudpReceiver<ToSrv>)> {
+pub struct RemoteSrv;
+impl UdpPeer for RemoteSrv {
+ type Sender = ToSrv;
+ type Receiver = FromSrv;
+}
+
+pub async fn connect(addr: &str) -> io::Result<(RudpSender<RemoteSrv>, RudpReceiver<RemoteSrv>)> {
let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0").await?);
sock.connect(addr).await?;