battleye_rust/socket/
udp.rs1use crate::socket::action::SocketAction;
2use std::io::Error;
3use std::net::{Ipv4Addr, UdpSocket};
4
5pub struct UdpSocketConnection {
6 udp_socket: UdpSocket,
7}
8
9impl SocketAction for UdpSocketConnection {
10 fn disconnect(&mut self) -> Result<(), Error> {
12 self.udp_socket = UdpSocket::bind((Ipv4Addr::UNSPECIFIED, 0))?;
13 Ok(())
14 }
15
16 fn listen(&self, buffer_size: usize) -> Result<Vec<u8>, Error> {
18 let mut buffer_data = vec![0; buffer_size];
19 self.udp_socket.recv(&mut buffer_data)?;
20 Ok(buffer_data.to_vec())
21 }
22
23 fn send(&self, data: &[u8]) -> std::io::Result<usize> {
25 self.udp_socket.send(data)
26 }
27}
28
29impl UdpSocketConnection {
30 pub fn new(udp_socket: UdpSocket) -> Self {
32 Self { udp_socket }
33 }
34}