1 use crate::{PeerID, UdpReceiver, UdpSender};
2 use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
3 use num_enum::{TryFromPrimitive, TryFromPrimitiveError};
14 sock: Arc<net::UdpSocket>,
17 impl UdpSender for Sender {
18 fn send(&self, data: Vec<u8>) -> io::Result<()> {
19 self.sock.send(&data)?;
25 sock: Arc<net::UdpSocket>,
28 impl UdpReceiver for Receiver {
29 fn recv(&self) -> io::Result<Vec<u8>> {
30 let mut buffer = Vec::new();
31 buffer.resize(crate::UDP_PKT_SIZE, 0);
33 let len = self.sock.recv(&mut buffer)?;
40 pub fn connect(addr: &str) -> io::Result<(crate::RudpSender<Sender>, crate::RudpReceiver<Sender>)> {
41 let sock = Arc::new(net::UdpSocket::bind("0.0.0.0:0")?);
48 sock: Arc::clone(&sock),