From c8b6ac623cdc7fbbf2b0a04dc774126907d473c9 Mon Sep 17 00:00:00 2001 From: sili98 <sili98@sch.bme.hu> Date: Wed, 11 Mar 2020 04:24:19 +0100 Subject: [PATCH] Fixed communication bug. --- zsirozas/Common.cs | 2 +- zsirozas/Game.cs | 7 ++++--- zsirozas/GameClient.cs | 32 +++++++++++++++++++------------- zsirozas/RawTcpTransport.cs | 2 +- 4 files changed, 25 insertions(+), 18 deletions(-) diff --git a/zsirozas/Common.cs b/zsirozas/Common.cs index 906a844..0335dfd 100644 --- a/zsirozas/Common.cs +++ b/zsirozas/Common.cs @@ -48,7 +48,7 @@ namespace zsirozas /// </summary> /// <param name="s">a message that will be written to the network stream</param> void SendMessage(string s); - void ParseNextMessage(Stream s, object param); + void ParseNextMessage(StreamReader sr); bool ValidateConnection(object connInfo); } diff --git a/zsirozas/Game.cs b/zsirozas/Game.cs index c2e9f44..b6a8c48 100644 --- a/zsirozas/Game.cs +++ b/zsirozas/Game.cs @@ -16,8 +16,8 @@ namespace zsirozas public void NotifyPlayers(GameEvent @event) { - string prefix = ServerEvent.GameEvent + "\n"; - string message = prefix + @event; + //string prefix = ServerEvent.GameEvent + "\n"; + string message = "";//prefix + @event; switch (@event) { case GameEvent.CardAction: @@ -48,7 +48,8 @@ namespace zsirozas } for (int i = 0; i < playersByOrder.Length; i++) { - gameServer.UsersByID[playersByOrder[i]].client.SendMessage(message); + //gameServer.UsersByID[playersByOrder[i]].client.SendMessage(message); + gameServer.UsersByID[playersByOrder[i]].client.InGameNotify(GameEvent.GameOver, message); } } diff --git a/zsirozas/GameClient.cs b/zsirozas/GameClient.cs index 1aa94f4..52b59bf 100644 --- a/zsirozas/GameClient.cs +++ b/zsirozas/GameClient.cs @@ -121,17 +121,22 @@ namespace zsirozas void ListenForServer() { - try + using (var sr = new StreamReader(messageStream)) { while (true) { - ParseNextMessage(messageStream, null); + try + { + ParseNextMessage(sr); + } + catch (Exception ex) + { + //TODO: rossz debug módszer.... + handleServerError(this, ex.Message); + return; + } } } - catch (Exception ex) - { - return; - } //using (var sr = new StreamReader(messageStream)) //{ // string line = ""; @@ -217,9 +222,9 @@ namespace zsirozas throw new NotImplementedException(); } - public void ParseNextMessage(Stream s, object param) + public void ParseNextMessage(StreamReader sr) { - using (var sr = new StreamReader(s)) + //using (var sr = new StreamReader(s)) { try { @@ -231,7 +236,7 @@ namespace zsirozas var @event = (ServerEvent)Enum.Parse(typeof(ServerEvent), line); if (@event == ServerEvent.GameEvent) { - ParseGameMessage(sr, param); + ParseGameMessage(sr); } else { @@ -253,13 +258,14 @@ namespace zsirozas } } } - private void ParseGameMessage(StreamReader sr, object param) + private void ParseGameMessage(StreamReader sr) { //TODO: validálni string line = sr.ReadLine(); - GameEvent gameEvent; - Enum.TryParse(line, out gameEvent); - InGameNotify(gameEvent, sr.ReadLine()); + if (Enum.TryParse(line, out GameEvent gameEvent)) + { + InGameNotify(gameEvent, sr.ReadLine()); + } } public void InGameNotify(GameEvent @event, string param0) diff --git a/zsirozas/RawTcpTransport.cs b/zsirozas/RawTcpTransport.cs index 19eca1f..425d142 100644 --- a/zsirozas/RawTcpTransport.cs +++ b/zsirozas/RawTcpTransport.cs @@ -68,7 +68,7 @@ namespace zsirozas return false; } - public void ParseNextMessage(Stream s, object param) + public void ParseNextMessage(StreamReader sr) { throw new NotSupportedException("This is a proxy to the real app client. You shouldn't want to feed it message streams."); } -- GitLab