Beispiel #1
0
        private void Message_Received(object sender, MessageReceivedFromClientEventArgs e)
        {
            TcpMessage msg        = JsonConvert.DeserializeObject <TcpMessage>(Encoding.UTF8.GetString(e.Data));
            Client     clientName = clients.FirstOrDefault(c => c.IpAddress == e.IpPort);

            switch (msg.MessageType)
            {
            case MessageType.Message:
                memoEdit1.Invoke((MethodInvoker) delegate
                {
                    memoEdit1.Text += clientName.UserName + " : " + msg.Message + System.Environment.NewLine;
                });
                break;

            case MessageType.SendUserName:
                var Client = clients.SingleOrDefault(c => c.IpAddress == e.IpPort);
                if (Client != null)
                {
                    Client.UserName = msg.Message;
                    gridView1.RefreshData();
                }

                break;
            }
        }
Beispiel #2
0
 private void Test2ServerMsgRcv(object sender, MessageReceivedFromClientEventArgs args)
 {
     try
     {
         _BytesReceived += args.Data.Length;
         _MessagesProcessing--;
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Beispiel #3
0
 private void Test2ServerMsgRcv(object sender, MessageReceivedFromClientEventArgs args)
 {
     try
     {
         Interlocked.Decrement(ref _MessagesProcessing);
         Interlocked.Add(ref _BytesReceived, args.Data.Length);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Beispiel #4
0
 private static void MessageReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     Console.WriteLine("Message received from " + args.IpPort + ": " + Encoding.UTF8.GetString(args.Data));
     if (args.Metadata != null && args.Metadata.Count > 0)
     {
         Console.WriteLine("Metadata:");
         foreach (KeyValuePair <object, object> curr in args.Metadata)
         {
             Console.WriteLine("  " + curr.Key.ToString() + ": " + curr.Value.ToString());
         }
     }
 }
Beispiel #5
0
 private void Test1ServerMsgRcv(object sender, MessageReceivedFromClientEventArgs args)
 {
     try
     {
         // Console.WriteLine("Processing message from client " + args.IpPort + " (" + args.Data.Length + " bytes)");
         Interlocked.Add(ref _BytesReceived, args.Data.Length);
         Interlocked.Decrement(ref _MessagesProcessing);
     }
     catch (Exception e)
     {
         Console.WriteLine("Exception: " + e.ToString());
     }
 }
Beispiel #6
0
 private void Test1ServerMsgRcv(object sender, MessageReceivedFromClientEventArgs args)
 {
     try
     {
         Console.WriteLine("Processing message from client " + args.IpPort + " (" + args.Data.Length + " bytes)");
         _BytesReceived      += args.Data.Length;
         _MessagesProcessing -= 1;
     }
     catch (Exception e)
     {
         Console.WriteLine("Exception: " + e.ToString());
     }
 }
Beispiel #7
0
 private static void ServerMessageReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     try
     {
         object o = args.Metadata["person"];
         Console.WriteLine(SerializeJson(o, true));
         Person p = (Person)o;
         Console.WriteLine(p.FirstName + " " + p.LastName + ": " + p.Number);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Beispiel #8
0
 private static void ServerMsgReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     // Console.WriteLine("[server] msg from " + args.IpPort + ": " + BytesToHex(Md5(args.Data)) + " (" + args.Data.Length + " bytes)");
     try
     {
         string md5 = BytesToHex(Md5(args.Data));
         if (!md5.Equals(_DataLargeMd5) && !md5.Equals(_DataSmallMd5))
         {
             Interlocked.Increment(ref _Failure);
             Console.WriteLine("[server] [msg] [async] Data MD5 validation failed");
         }
         else
         {
             Interlocked.Increment(ref _Success);
             // Console.WriteLine("[server] [msg] [async] Data MD5 validation success: " + md5);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Beispiel #9
0
 private static void ServerMsgReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     Console.WriteLine("[server] msg from " + args.IpPort + ": " + BytesToHex(Md5(args.Data)) + " (" + args.Data.Length + " bytes)");
 }
Beispiel #10
0
 static void ServerMessageReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     Console.WriteLine("Server received " + args.Data.Length + " bytes from " + args.IpPort + ": MD5 " + Md5(args.Data));
 }
Beispiel #11
0
 private static void ServerMsgReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
 }
Beispiel #12
0
 private void OnMessageReceived(object sender, MessageReceivedFromClientEventArgs e)
 {
     Logger("Client " + e.IpPort + ": " + Encoding.UTF8.GetString(e.Data));
 }
Beispiel #13
0
 private void MessageReceived(object sender, MessageReceivedFromClientEventArgs args)
 {
     MessageReceivedFromClientEvent(sender, args);
 }
Beispiel #14
0
        /// <summary>
        /// Handle message if client send anything to the server
        ///
        /// The message contain two part,
        /// first part is a identifier (string) to distinguish what type of message is it
        /// second part is the message content
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public static void MessageReceivedFromClient(object sender, MessageReceivedFromClientEventArgs args)
        {
            string[] messages = Encoding.UTF8.GetString(args.Data).Split(new char[] { '_' }, 2);
            try
            {
                Console.Out.WriteLine("[NetworkManager-Server] Recieved message type: " + messages[0]);
                Console.Out.WriteLine("[NetworkManager-Server] The message is: " + messages[1]);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }

            switch (messages[0])
            {
            case "ConnectionSucessful":
                Console.Out.WriteLine("[NetworkManager-Server] New connection established with client IP: {0}, Name: {1}", args.IpPort, messages[1]);
                window.Dispatcher.Invoke(() =>
                {
                    //Send the clientNumber to the client
                    clientCount += 1;
                    Console.Out.WriteLine("[NetworkManager-Server] Setting client with IPPort: {0} as client number {1}", args.IpPort, clientCount);
                    server.TCPSendMessage(args.IpPort, "setClientNumber", clientCount.ToString());

                    //Add the client view object for networking page
                    ClientViewObject.Add(clientCount, messages[1], args.IpPort);
                });
                break;

            case "modInjection":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving Mod Injection Request from client, proceed to modify injection");
                window.Dispatcher.Invoke(() =>
                {
                    server.TCPBroadcastMessage("modInjection", messages[1]);
                    InjectionsManager.modInjection(XElement.Parse(messages[1]));
                });
                break;

            case "requestInitialInjection":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving Initial Injection Request from client, proceed to send all injection to client with ip: {0}", args.IpPort);
                foreach (Injection injection in InjectionsManager.injections)
                {
                    server.TCPSendMessage(args.IpPort, "modInjection", injection.toXML().ToString());
                }
                break;

            case "requestInitialPatient":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving Initial Patient Request from client, proceed to send all patient to client with ip: {0}", args.IpPort);
                foreach (Patient patient in PatientManager.Patients)
                {
                    server.TCPSendMessage(args.IpPort, "addPatient", patient.toXML().ToString());
                }
                break;

            //////////////////////////////////////////////////
            ////////    Obsolete    //////////////////////////
            case "dischargeInjection":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving discharge Injection Request from client, proceed to discharge injection");
                window.Dispatcher.Invoke(() =>
                {
                    server.TCPBroadcastMessage("dischargeInjection", messages[1]);
#pragma warning disable CS0618 // Type or member is obsolete
                    InjectionsManager.dischargeInjection(messages[1]);
#pragma warning restore CS0618 // Type or member is obsolete
                });
                break;
            //////////////////////////////////////////////////

            case "changePatientStatus":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving changePatientStatus Request from client, proceed to change PatientStatus");
                window.Dispatcher.Invoke(() =>
                {
                    server.TCPBroadcastMessage("changePatientStatus", messages[1]);
                    //try to splite the message back to (accessionNumber, patientStatus)
                    if (messages[1].Split('^').Length == 2)
                    {
                        InjectionsManager.changePatientStatus(messages[1].Split('^')[0], messages[1].Split('^')[1]);
                    }
                    else
                    {
                        Console.Out.WriteLine("[NetworkManager-Server_changePatientStatus()] Corrupted changePatientStatus message, require 2 input. Message: " + messages[1]);
                    }
                });

                break;

            case "removeInjection":
                Console.Out.WriteLine("[NetworkManager-Server] Receiving remove Injection Request from client, proceed to remove injection");
                window.Dispatcher.Invoke(() =>
                {
                    server.TCPBroadcastMessage("removeInjection", messages[1]);
                    InjectionsManager.removeInjection(messages[1]);
                });
                break;

            default:
                Console.Error.WriteLine("[NetworkManager-Server] Unhandled message type: " + messages[0]);
                break;
            }

            try
            {
                window.Dispatcher.Invoke(() =>
                {
                    ClientViewObject.GetClientViaIP(args.IpPort).UpdateMessage(messages[0], messages[1]);
                });
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
            }
        }