diff --git a/src/main.rs b/src/main.rs index 7a4e9c4..67c0256 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,33 +6,36 @@ use data::VarInt; #[tokio::main] async fn main() -> Result<(), Box> { - // // 1. Создаём TCP listener на порту 25565 - // let listener = TcpListener::bind("127.0.0.1:25565").await?; - // println!("Listening on port 25565..."); + // 1. Создаём TCP listener на порту 25565 + let listener = TcpListener::bind("127.0.0.1:25565").await?; + println!("Listening on port 25565..."); - // // 2. Асинхронно принимаем входящие соединения - // while let Ok((stream, _)) = listener.accept().await { - // // Для каждого соединения создаём отдельную задачу - // tokio::spawn(handle_connection(stream)); - // } + // 2. Асинхронно принимаем входящие соединения + while let Ok((stream, _)) = listener.accept().await { + // Для каждого соединения создаём отдельную задачу + tokio::spawn(handle_connection(stream)); + } Ok(()) } async fn handle_connection(mut stream: TcpStream) { - let mut buffer = [0; 1024]; + let mut firstByte = [0]; + let Ok(n) = stream.read(&mut firstByte).await else { return }; - // 3. Читаем данные из потока - while let Ok(n) = stream.read(&mut buffer).await { - if n == 0 { - // Соединение закрыто - break; - } + // let mut buffer = [0; 1024]; - // 4. Декодируем байты в UTF-8, пропуская ошибки - let received = String::from_utf8_lossy(&buffer[..n]); - print!("{}", received); - } + // // 3. Читаем данные из потока + // while let Ok(n) = stream.read(&mut buffer).await { + // if n == 0 { + // // Соединение закрыто + // break; + // } + + // // 4. Декодируем байты в UTF-8, пропуская ошибки + // let received = String::from_utf8_lossy(&buffer[..n]); + // print!("{}", received); + // } // 5. Соединение автоматически закрывается при выходе из области видимости } \ No newline at end of file