| 36 | } |
| 37 | |
| 38 | pub fn recv_from(&self, max_bytes: usize) -> NetResult<Option<UdpPacket>> { |
| 39 | let mut buf = vec![0_u8; max_bytes.max(1)]; |
| 40 | match self.socket.recv_from(&mut buf) { |
| 41 | Ok((n, peer)) => { |
| 42 | buf.truncate(n); |
| 43 | Ok(Some(UdpPacket { |
| 44 | peer: peer.to_string(), |
| 45 | bytes: buf, |
| 46 | })) |
| 47 | } |
| 48 | Err(err) if err.kind() == io::ErrorKind::WouldBlock => Ok(None), |
| 49 | Err(err) => Err(NetError::from_io(NetErrorKind::Receive, err)), |
| 50 | } |
| 51 | } |
| 52 | |
| 53 | pub fn poll_event(&self, max_bytes: usize) -> NetResult<Option<NetEvent>> { |
| 54 | let Some(packet) = self.recv_from(max_bytes)? else { |