diff --git a/server/src/main.rs b/server/src/main.rs index aff829d..7483d8b 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -8,11 +8,16 @@ mod command; use log::info; +// use crate::server::decode; + #[tokio::main] async fn main() { server_properties::setup(); let p = server_properties::ServerProperties::load(); let (close, _stdin) = logger::setup(&p).unwrap(); + // let packet = include_bytes!("a.bin"); + // decode(&*packet); + // info!(target: "setup", "Starting server in `{}`", std::env::current_dir().unwrap().display()); info!(target: "setup", "Server name: `{}`", p.name); info!(target: "setup", "Serving on address `{}`", p.addr); diff --git a/server/src/server.rs b/server/src/server.rs index 02fa79a..dfbe8eb 100644 --- a/server/src/server.rs +++ b/server/src/server.rs @@ -35,6 +35,21 @@ mod protos; mod socket_manager; mod votes; +// pub fn decode(bytes: &[u8]) { +// let p = protos::protocol::ServerClientPacket::decode(bytes).expect("AAAAH"); +// match p.data.unwrap() { +// protos::protocol::server_client_packet::Data::ReturnName(_) => log::info!("ReturnName"), +// protos::protocol::server_client_packet::Data::ReturnConnect(_) => log::info!("ReturnConnect"), +// protos::protocol::server_client_packet::Data::ReturnCreateLobby(_) => log::info!("ReturnCreateLobby"), +// protos::protocol::server_client_packet::Data::ReturnGames(_) => log::info!("ReturnGames"), +// protos::protocol::server_client_packet::Data::ReturnPublicLobbies(_) => log::info!("ReturnPublicLobbies"), +// protos::protocol::server_client_packet::Data::ReturnUsers(_) => log::info!("ReturnUsers"), +// protos::protocol::server_client_packet::Data::LobbyStatus(_) => log::info!("LobbyStatus"), +// protos::protocol::server_client_packet::Data::ReturnCardImage(_) => log::info!("ReturnCardImage"), +// protos::protocol::server_client_packet::Data::GameStatus(_) => log::info!("GameStatus"), +// } +// } + // use connection::{ConnectionServer, ConnectionService}; // use game::{GameServer, GameService}; // use lobby::{LobbyServer, LobbyService}; diff --git a/server/src/server/game.rs b/server/src/server/game.rs index 42c9197..a93d91b 100644 --- a/server/src/server/game.rs +++ b/server/src/server/game.rs @@ -122,7 +122,7 @@ pub(super) async fn get_card_image( // log::info!("Loading back image [{:?}]", time.elapsed()); let back_buf = tokio::fs::read(back).await.unwrap(); - log::info!("Loaded images [{:?}]", time.elapsed()); + log::info!("Loaded images {} [{:?}]", card_kind.kind, time.elapsed()); socket_mgr .write( data.user_id.get_ref()?, diff --git a/server/src/server/socket_manager.rs b/server/src/server/socket_manager.rs index 6f7491e..b92b990 100644 --- a/server/src/server/socket_manager.rs +++ b/server/src/server/socket_manager.rs @@ -1,4 +1,5 @@ use std::collections::HashMap; +use log::debug; use tokio::{ io::{AsyncWriteExt, BufWriter}, net::{tcp::OwnedWriteHalf}, @@ -22,6 +23,7 @@ impl MessageWriter { panic!("Can't send a message larger than {} bytes", u32::MAX); } let mut data = vec![0u8; length]; + debug!("Sending {} bytes", length); protos::protocol::ServerClientPacket { data: Some(packet) } .encode(&mut data.as_mut_slice())?; diff --git a/unity/Assets/Scripts/TcpConnection.cs b/unity/Assets/Scripts/TcpConnection.cs index 0fd58f0..6a0efb5 100644 --- a/unity/Assets/Scripts/TcpConnection.cs +++ b/unity/Assets/Scripts/TcpConnection.cs @@ -30,8 +30,12 @@ public class TcpConnection { } int size = BitConverter.ToInt32(b, 0); byte[] data = new byte[size]; - c.Client.Receive(data, 0, size, SocketFlags.None); - Debug.Log("Recieved " + size + " bytes"); + Debug.Log("Receiving " + size + " bytes; Buffer size: " + data.Length); + int received = 0; + do { + received += c.Client.Receive(data, received, size-received, SocketFlags.None); + Debug.Log("Received " + received + " bytes"); + } while(received < size); // The Receive method caps out at 65536 bytes return Protocol.ServerClientPacket.Parser.ParseFrom(data); }