From 97b00dfc7e4046451841389f604d1237ad742ac6 Mon Sep 17 00:00:00 2001 From: GIKExe <72767917+GIKExe@users.noreply.github.com> Date: Thu, 1 May 2025 05:54:57 +0300 Subject: [PATCH] =?UTF-8?q?=D1=85=D1=83=D0=B9=D0=BD=D1=8F=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/d.rs | 36 ++++++++++++++++++++++++++++++++++++ src/main.rs | 22 +++++++++++++++------- 2 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 src/d.rs diff --git a/src/d.rs b/src/d.rs new file mode 100644 index 0000000..617f4d5 --- /dev/null +++ b/src/d.rs @@ -0,0 +1,36 @@ +use std::ops::Index; + + + + + + + + +pub enum BufferError { + EndOfBuffer +} + +pub struct Buffer { + bytes: Vec, + index: usize +} + +impl Buffer { + pub fn new(bytes: Vec, index: usize) -> Self { + Buffer { bytes, index } + } + + pub fn read(&self, size: usize) -> Result, BufferError> { + if self.index + size >= self.bytes.len() {return Err(BufferError::EndOfBuffer);} + // self.index += size; + Ok(self.bytes[self.index..self.index+size-1].to_vec()) + } + + pub fn read2(&mut self, size: usize) -> Result, BufferError> { + if self.index + size >= self.bytes.len() {return Err(BufferError::EndOfBuffer);} + self.index += size; + Ok(self.bytes[self.index..self.index+size-1].to_vec()) + } +} + diff --git a/src/main.rs b/src/main.rs index 38d38ab..37a9a83 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,17 +1,25 @@ mod data; use data::{Packet, Server, Socket}; +mod d; +use d::*; + use std::thread; fn main() { - let Ok(server) = Server::new("127.0.0.1:25565") else { - println!("Не удалось забиндить сервер"); return; - }; + let a = Buffer::new(vec![0x01,0xFF,0x33], 0); + let b = a; + let x = a.read(1); + let x2 = a.read(1); - loop { - let socket = server.accept(); - thread::spawn(move || { handle_connection(socket); }); - } + // let Ok(server) = Server::new("127.0.0.1:25565") else { + // println!("Не удалось забиндить сервер"); return; + // }; + + // loop { + // let socket = server.accept(); + // thread::spawn(move || { handle_connection(socket); }); + // } } fn handle_connection(socket: Socket) {