public void ReceiveMessageFromServer()
 {
     while (!Stop)
     {
         try
         {
             NetworkStream stream = client.GetStream();
             BinaryReader  reader = new BinaryReader(stream);
             try
             {
                 if (stream.DataAvailable)
                 {
                     mutex.WaitOne();
                     string jsonString = reader.ReadString();
                     mutex.ReleaseMutex();
                     var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <CommandEventArgs>(jsonString);
                     if (obj != null)
                     {
                         OnMessageFromServer?.Invoke(this, (CommandEventArgs)obj);
                     }
                 }
                 else
                 {
                     Thread.Sleep(2);
                 }
             }
             catch { DisconnectFromServer(); }
         }
         catch { DisconnectFromServer(); }
     }
 }
 public void SendMessageToServer(CommandEventArgs commandArgs)
 {
     if (!client.Connected)
     {
         DisconnectFromServer();
         //DisconnectedFromServer?.Invoke(this, client.Connected);
         //Stop = true;
         return;
     }
     NetworkStream stream = client.GetStream();
     BinaryWriter  writer = new BinaryWriter(stream);
     BinaryReader  reader = new BinaryReader(stream);
     {
         try
         {
             string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(commandArgs);
             mutex.WaitOne();
             writer.Write(jsonString);
             jsonString = reader.ReadString();
             mutex.ReleaseMutex();
             var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <CommandEventArgs>(jsonString);
             if (obj != null)
             {
                 OnMessageFromServer?.Invoke(this, (CommandEventArgs)obj);
             }
         }
         catch { Debug.WriteLine("Can't write to server"); }
     }
 }
Example #3
0
 public void ReceiveMessageFromServer()
 {
     using (NetworkStream stream = client.GetStream())
         using (BinaryReader reader = new BinaryReader(stream))
         {
             while (!stop)
             {
                 //might need try catch if data.available not working
                 if (stream.DataAvailable)
                 {
                     string           message     = reader.ReadString();
                     CommandEventArgs commandArgs = new CommandEventArgs(); //make sure tanslate from jason
                     OnMessageFromServer?.Invoke(this, commandArgs);
                 }
                 else
                 {
                     Thread.Sleep(10);
                 }
             }
         }
 }