2 use std::{io, net, sync::Arc};
5 sock: Arc<net::UdpSocket>,
8 impl UdpSender for Sender {
9 fn send(&self, data: Vec<u8>) -> io::Result<()> {
10 self.sock.send(&data)?;
16 sock: Arc<net::UdpSocket>,
19 impl UdpReceiver for Receiver {
20 fn recv(&self) -> io::Result<Vec<u8>> {
21 let mut buffer = Vec::new();
22 buffer.resize(UDP_PKT_SIZE, 0);
24 let len = self.sock.recv(&mut buffer)?;
31 pub fn connect(addr: &str) -> io::Result<(RudpSender<Sender>, RudpReceiver<Sender>)> {
32 let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0")?);
39 sock: Arc::clone(&sock),