diff --git a/Client/Client.cs b/Client/Client.cs index 29833b2..f67228b 100644 --- a/Client/Client.cs +++ b/Client/Client.cs @@ -159,12 +159,14 @@ namespace Client { Debug.WriteLine("[CLIENT] sending message " + Encoding.ASCII.GetString(message)); stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWriteComplete), null); + } private void OnWriteComplete(IAsyncResult ar) { Debug.WriteLine("[CLIENT] finished writing"); stream.EndWrite(ar); + stream.Flush(); } } } diff --git a/Server/Models/ServerClient.cs b/Server/Models/ServerClient.cs index 01b723a..3c2bc89 100644 --- a/Server/Models/ServerClient.cs +++ b/Server/Models/ServerClient.cs @@ -15,6 +15,7 @@ using static SharedClientServer.JSONConvert; namespace Server.Models { + public delegate void Callback(); class ServerClient : ObservableObject { private TcpClient tcpClient; @@ -24,6 +25,7 @@ namespace Server.Models private int totalBufferReceived = 0; public User User { get; set; } private ServerCommunication serverCom = ServerCommunication.INSTANCE; + private Callback OnMessageReceivedOk; /// @@ -159,6 +161,10 @@ namespace Server.Models case JSONConvert.RANDOMWORD: //Flag byte for receiving the random word. break; + case JSONConvert.MESSAGE_RECEIVED: + // we now can send a new message + OnMessageReceivedOk?.Invoke(); + break; default: Debug.WriteLine("[SERVER] Received weird identifier: " + id); break; diff --git a/SharedClientServer/JSONConvert.cs b/SharedClientServer/JSONConvert.cs index 1c7527b..551c2ff 100644 --- a/SharedClientServer/JSONConvert.cs +++ b/SharedClientServer/JSONConvert.cs @@ -18,6 +18,7 @@ namespace SharedClientServer public const byte LOBBY = 0x03; public const byte CANVAS = 0x04; public const byte RANDOMWORD = 0x05; + public const byte MESSAGE_RECEIVED = 0x06; public enum LobbyIdentifier {