Esempio n. 1
0
        private static void ServerTask()
        {
            for (int i = 0; i < _NumIterations; i++)
            {
                int waitVal = _Random.Next(0, 12);
                Task.Delay(waitVal).Wait();
                if (waitVal % 3 == 0)
                {
                    Console.WriteLine("[server] " + (i + 1).ToString() + "/" + _NumIterations.ToString() + " Sending large message");
                    _Server.Send(_ClientIpPort, _DataLargeBytes);
                }
                else if (waitVal % 2 == 0)
                {
                    Console.WriteLine("[server] " + (i + 1).ToString() + "/" + _NumIterations.ToString() + " Sending small message");
                    _Server.Send(_ClientIpPort, _DataSmallBytes);
                }
                else
                {
                    Console.WriteLine("[server] " + (i + 1).ToString() + "/" + _NumIterations.ToString() + " Send and wait small message");
                    try
                    {
                        SyncResponse syncResponse = _Server.SendAndWait(_ClientIpPort, _SendAndWaitInterval, _DataSmallBytes);
                        Console.WriteLine("[server] Sync response received");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("[server] Sync response not received: " + e.Message);
                    }
                }
            }

            Console.WriteLine("[server] Finished");
        }
Esempio n. 2
0
 public void TCPBroadcastMessage(string messageType, string message)
 {
     //TODO: stop referencing clientviewobjects? maybe move it to a seperate dataclass?
     Console.Out.WriteLine("[Server] broadcasting message of Type: {0}", messageType);
     foreach (string clientIPPort in clientIPs)
     {
         tcpServer.Send(clientIPPort, messageType + "_" + message);
     }
 }
Esempio n. 3
0
        internal bool Send(string ipPort, Dictionary <object, object> metadata, long contentLength, Stream stream)
        {
            if (String.IsNullOrEmpty(ipPort))
            {
                throw new ArgumentNullException(nameof(ipPort));
            }
            if (contentLength < 0)
            {
                throw new ArgumentException("Content length must be zero or greater.");
            }
            if (stream == null || !stream.CanRead)
            {
                throw new ArgumentException("Cannot read from supplied stream.");
            }

            if (_WtcpServer == null)
            {
                Logger?.Invoke("[ClusterServer] Server is null, cannot send");
                return(false);
            }
            if (_WtcpServer.IsClientConnected(ipPort))
            {
                return(_WtcpServer.Send(ipPort, metadata, contentLength, stream));
            }
            else
            {
                Logger?.Invoke("[ClusterServer] Server is not connected, cannot send");
                return(false);
            }
        }
Esempio n. 4
0
        private void btnEnviar_Click(object sender, RoutedEventArgs e)
        {
            if (ltbIpsConectados.SelectedItem == null)
            {
                foreach (string ip in ltbIpsConectados.Items)
                {
                    server.Send(ip, txtMensagem.Text);
                }
            }
            else
            {
                server.Send(ltbIpsConectados.SelectedItem.ToString(), txtMensagem.Text);
            }

            txtHistoricoMensagens.Text += $"Eu: {txtMensagem.Text}{Environment.NewLine}";
            txtMensagem.Text            = string.Empty;
        }
Esempio n. 5
0
        public static void HepsineGonder(string mesaj)
        {
            var clientler = server.ListClients();

            foreach (string client in clientler)
            {
                server.Send(client, mesaj);
            }
        }
Esempio n. 6
0
        public void timerSendTaglistEvent(object sender, ElapsedEventArgs e, int index)
        {
            clients[index].ClientTaglist = plc[index].Return();
            PacketDTO currentPacket = new PacketDTO(Utils.TypeCommand.Control, Utils.ControlCommand.Write, clients[index].ClientPLCId, clients[index].ClientPLCName, clients[index].ClientDBId, clients[index].ClientDBName, "", ObjectToByteArray((Object)clients[index].ClientTaglist));
            var       peremen       = clients[index].ClientTaglist.SingleOrDefault(pl => pl.Name == "WatchDogPLC").CurrentValue;


            server.Send(clients[index].ClientPort, ObjectToByteArray((Object)currentPacket));
        }
Esempio n. 7
0
        private void SendMessage(string ipAdress, MessageType messageType, string message)
        {
            TcpMessage msg = new TcpMessage()
            {
                MessageType = messageType,
                Message     = message
            };

            server.Send(ipAdress, JsonConvert.SerializeObject(msg));
        }
Esempio n. 8
0
        /// <summary>
        /// Function that uploads file to a Joined based on Relative path and IP:Port that it has to upload to.
        /// </summary>
        /// <param name="IpPost">IP:Port that it has to upload to.</param>
        /// <param name="rel"> Relative path of uploading file.</param>
        public void UploadFile(string IpPost, string rel)
        {
            string loc = Filed.GetLocalFromRelative(rel);

            using (FileStream fs = new FileStream(loc, FileMode.Open))
            {
                servH.Send(IpPost, fs.Length, fs);
            }
            UIHandler.WriteLog($"Uploaded {rel}", Color.Green);
        }
Esempio n. 9
0
 private void bSend_Click(object sender, EventArgs e)
 {
     if (!String.IsNullOrEmpty(_ClientIpPort))
     {
         _Server.Send(_ClientIpPort, "Hello world!");
         Logger("Sent 'Hello world!' to client " + _ClientIpPort);
     }
     else
     {
         Logger("No client connected");
     }
 }
Esempio n. 10
0
 /// <summary>
 /// Send a message to the specified client.
 /// </summary>
 /// <param name="ipPort">The IP:port of the client.</param>
 /// <param name="data">Data to send to the client.</param>
 /// <returns>True if successful.</returns>
 internal bool Send(string ipPort, byte[] data)
 {
     if (_WtcpServer == null)
     {
         if (Debug)
         {
             Console.WriteLine("Server is null, cannot send");
         }
         return(false);
     }
     if (_WtcpServer.IsClientConnected(ipPort))
     {
         _WtcpServer.Send(ipPort, data);
         return(true);
     }
     else
     {
         if (Debug)
         {
             Console.WriteLine("Server is not connected, cannot send");
         }
         return(false);
     }
 }
        /// <summary>
        /// Escribir un objeto a la red mesh
        /// </summary>
        /// <param name="mac">Dirección MAC a la cual escribir</param>
        /// <param name="obj">Objeto a escribir</param>
        /// <param name="layer">Capa de la red mesh</param>
        public void Write <T>(string mac, T obj, int layer = 1)
        {
            if (m_connectedRootNode == null)
            {
                return;
            }

            var msg = new MeshMessage <T>(mac, obj, layer);

            string serialized = JsonConvert.SerializeObject(msg, SerializationSettings);

            Debug.WriteLine(this, "Escribiendo mensaje TCP: " + serialized, VerbosityLevel.Debug);

            m_tcpServer.Send(m_connectedRootNode, Encoding.ASCII.GetBytes(serialized), supressHeader: true);
        }
Esempio n. 12
0
        static void Main(string[] args)
        {
            try
            {
                var watsonServer = new WatsonTcpServer("127.0.0.1", Port)
                {
                    Compression   = CompType,
                    Logger        = Console.WriteLine,
                    DebugMessages = true
                };

                watsonServer.MessageReceived += (sender, message) =>
                {
                    Console.WriteLine("Server received message: " + Encoding.UTF8.GetString(message.Data));
                    watsonServer.Send(message.IpPort, message.Data);
                };

                watsonServer.Start();
                Task.Delay(1000).Wait();

                var client = new WatsonTcpClient("127.0.0.1", Port)
                {
                    Compression   = CompType,
                    Logger        = Console.WriteLine,
                    DebugMessages = true
                };

                client.MessageReceived += (sender, message) =>
                {
                    Console.WriteLine("Client received message: " + Encoding.UTF8.GetString(message.Data));
                };

                client.Start();
                Task.Delay(1000).Wait();

                for (int i = 0; i < 10; i++)
                {
                    client.Send("Hello " + i);
                    Task.Delay(250).Wait();
                }

                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
Esempio n. 13
0
 void ProcessMessageQueue()
 {
     if (messageQueue.Count <= 0)
     {
         return;
     }
     else
     {
         while (messageQueue.Count > 0)
         {
             byte[] messageToSend = messageQueue.Dequeue();
             foreach (KeyValuePair <string, string> users in connectedUsers)
             {
                 server.Send(users.Value, messageToSend);
             }
         }
     }
 }
Esempio n. 14
0
        public void Send <T>(string ipPort, T packet)
        {
            var packetId = (int)((Packet)(object)packet).PacketId;

            using (var stream = new MemoryStream())
            {
                var protocolVersion = BitConverter.GetBytes(Protocol.Version);
                stream.Write(protocolVersion, 0, 4);

                var pid = BitConverter.GetBytes(packetId);
                stream.Write(pid, 0, 4);
                Serializer.Serialize(stream, packet);

                var buffer = stream.ToArray();

                _watsonTcpServer.Send(ipPort, buffer);
                Console.WriteLine("PID {0} of {1} bytes sent to {2}", Enum.GetName(typeof(Protocols), packetId), buffer.Length, ipPort);
            }
        }
Esempio n. 15
0
        /// <summary>
        /// Send a packet to a client
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="ipPort"></param>
        /// <param name="packet"></param>
        /// <returns></returns>
        public bool Send <T>(string ipPort, T packet) where T : Packet
        {
            var packetId = (int)packet.PacketId;

            using (var stream = new MemoryStream())
            {
                var protocolVersion = BitConverter.GetBytes(Protocol.Version);
                stream.Write(protocolVersion, 0, 4);

                var pid = BitConverter.GetBytes(packetId);
                stream.Write(pid, 0, 4);
                Serializer.Serialize(stream, packet);

                var buffer = stream.ToArray();

                return(_watsonTcpServer.Send(ipPort, buffer));
                //ConsoleKit.Message(ConsoleKit.MessageType.INFO, "PID {0} of {1} bytes sent to {2}\n", Enum.GetName(typeof(Protocols), packetId), buffer.Length, ipPort);
            }
        }
 /// <summary>
 /// Escribir al servidor
 /// </summary>
 /// <param name="ipPort">IP / Puerto destinatario</param>
 /// <param name="msg">Mensaje a enviar</param>
 public void Write(string ipPort, string msg)
 {
     byte[] data = Encoding.ASCII.GetBytes(msg);
     m_server.Send(ipPort, data);
 }
Esempio n. 17
0
        private static void Main(string[] args)
        {
            serverIp   = InputString("Server IP:", "127.0.0.1", false);
            serverPort = InputInteger("Server port:", 9000, true, false);
            useSsl     = InputBoolean("Use SSL:", false);

            if (!useSsl)
            {
                server = new WatsonTcpServer(serverIp, serverPort);
            }
            else
            {
                certFile             = InputString("Certificate file:", "test.pfx", false);
                certPass             = InputString("Certificate password:"******"password", false);
                acceptInvalidCerts   = InputBoolean("Accept invalid certs:", true);
                mutualAuthentication = InputBoolean("Mutually authenticate:", false);

                server = new WatsonTcpServer(serverIp, serverPort, certFile, certPass);
                server.AcceptInvalidCertificates = acceptInvalidCerts;
                server.MutuallyAuthenticate      = mutualAuthentication;
            }

            server.ClientConnected    = ClientConnected;
            server.ClientDisconnected = ClientDisconnected;
            server.MessageReceived    = MessageReceived;
            server.Debug = debug;
            server.Start();

            bool runForever = true;

            while (runForever)
            {
                Console.Write("Command [? for help]: ");
                string userInput = Console.ReadLine();

                List <string> clients;
                string        ipPort;
                bool          success = false;

                if (String.IsNullOrEmpty(userInput))
                {
                    continue;
                }

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?          help (this menu)");
                    Console.WriteLine("  q          quit");
                    Console.WriteLine("  cls        clear screen");
                    Console.WriteLine("  list       list clients");
                    Console.WriteLine("  dispose    dispose of the connection");
                    Console.WriteLine("  send       send message to client");
                    Console.WriteLine("  sendasync  send message to a client asynchronously");
                    Console.WriteLine("  remove     disconnect client");
                    Console.WriteLine("  psk        set preshared key");
                    Console.WriteLine("  debug      enable/disable debug (currently " + server.Debug + ")");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "list":
                    clients = server.ListClients();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "dispose":
                    server.Dispose();
                    break;

                case "send":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.Send(ipPort, Encoding.UTF8.GetBytes(userInput));
                    Console.WriteLine(success);
                    break;

                case "sendasync":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput)).Result;
                    Console.WriteLine(success);
                    break;

                case "remove":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    server.DisconnectClient(ipPort);
                    break;

                case "psk":
                    server.PresharedKey = InputString("Preshared key:", "1234567812345678", false);
                    break;

                case "debug":
                    server.Debug = !server.Debug;
                    Console.WriteLine("Debug set to: " + server.Debug);
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 18
0
        static void Main(string[] args)
        {
            server = new WatsonTcpServer("127.0.0.1", 9000);
            server.Events.ClientConnected    += ServerClientConnected;
            server.Events.ClientDisconnected += ServerClientDisconnected;
            server.Events.MessageReceived    += ServerMessageReceived;
            // server.StreamReceived = ServerStreamReceived;
            // server.Debug = true;
            server.Start();

            client = new WatsonTcpClient("127.0.0.1", 9000);
            client.Events.ServerConnected    += ServerConnected;
            client.Events.ServerDisconnected += ServerDisconnected;
            client.Events.MessageReceived    += MessageReceived;
            // client.Events.StreamReceived = StreamReceived;
            // client.Debug = true;
            client.Start();

            int msgSize = (1024 * 128);

            Console.Write("Message size (default 128KB): ");
            string userInput = Console.ReadLine();

            if (!String.IsNullOrEmpty(userInput))
            {
                msgSize = Convert.ToInt32(userInput);
            }

            int msgCount = 4;

            Console.Write("Message count (default 4): ");
            userInput = Console.ReadLine();
            if (!String.IsNullOrEmpty(userInput))
            {
                msgCount = Convert.ToInt32(userInput);
            }

            Console.WriteLine("");
            Console.WriteLine("---");
            Console.WriteLine("Sending messages from client to server...");

            for (int i = 0; i < msgCount; i++)
            {
                string randomString = RandomString(msgSize);
                string md5          = Md5(randomString);
                Console.WriteLine("Client sending " + msgSize + " bytes: MD5 " + md5);
                client.Send(Encoding.UTF8.GetBytes(randomString));
            }

            Console.WriteLine("");
            Console.WriteLine("---");

            string ipPort = server.ListClients().ToList()[0];

            Console.WriteLine("Sending messages from server to client " + ipPort + "...");

            for (int i = 0; i < msgCount; i++)
            {
                string randomString = RandomString(msgSize);
                string md5          = Md5(randomString);
                Console.WriteLine("Server sending " + msgSize + " bytes: MD5 " + md5);
                server.Send(ipPort, Encoding.UTF8.GetBytes(randomString));
            }

            Console.WriteLine("");
            Console.WriteLine("---");
            Console.WriteLine("Press ENTER to exit");
            Console.ReadLine();
            server.Dispose();
            client.Dispose();
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            Console.Write("Server IP    : ");
            serverIp = Console.ReadLine();

            Console.Write("Server Port  : ");
            serverPort = Convert.ToInt32(Console.ReadLine());

            WatsonTcpServer server = new WatsonTcpServer(serverIp, serverPort, ClientConnected, ClientDisconnected, MessageReceived, true);

            bool runForever = true;

            while (runForever)
            {
                Console.Write("Command [? for help]: ");
                string userInput = Console.ReadLine();

                List <string> clients;
                string        ipPort;

                if (String.IsNullOrEmpty(userInput))
                {
                    continue;
                }

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?        help (this menu)");
                    Console.WriteLine("  q        quit");
                    Console.WriteLine("  cls      clear screen");
                    Console.WriteLine("  list     list clients");
                    Console.WriteLine("  send     send message to client");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "list":
                    clients = server.ListClients();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "send":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    server.Send(ipPort, Encoding.UTF8.GetBytes(userInput));
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 20
0
        private static void Main(string[] args)
        {
            serverIp   = InputString("Server IP:", "127.0.0.1", false);
            serverPort = InputInteger("Server port:", 9000, true, false);
            useSsl     = InputBoolean("Use SSL:", false);

            try
            {
                if (!useSsl)
                {
                    server = new WatsonTcpServer(serverIp, serverPort);
                }
                else
                {
                    certFile             = InputString("Certificate file:", "test.pfx", false);
                    certPass             = InputString("Certificate password:"******"password", false);
                    acceptInvalidCerts   = InputBoolean("Accept invalid certs:", true);
                    mutualAuthentication = InputBoolean("Mutually authenticate:", false);

                    server = new WatsonTcpServer(serverIp, serverPort, certFile, certPass);
                    server.AcceptInvalidCertificates = acceptInvalidCerts;
                    server.MutuallyAuthenticate      = mutualAuthentication;
                }

                server.ClientConnected    += ClientConnected;
                server.ClientDisconnected += ClientDisconnected;
                server.MessageReceived    += MessageReceived;
                server.SyncRequestReceived = SyncRequestReceived;
                // server.PresharedKey = "0000000000000000";
                // server.IdleClientTimeoutSeconds = 10;
                server.Logger        = Logger;
                server.DebugMessages = debugMessages;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return;
            }

            // server.Start();
            Task serverStart = server.StartAsync();

            bool          runForever = true;
            List <string> clients;
            string        ipPort;
            Dictionary <object, object> metadata;
            bool success = false;

            while (runForever)
            {
                string userInput = InputString("Command [? for help]:", null, false);

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?                   help (this menu)");
                    Console.WriteLine("  q                   quit");
                    Console.WriteLine("  cls                 clear screen");
                    Console.WriteLine("  list                list clients");
                    Console.WriteLine("  dispose             dispose of the connection");
                    Console.WriteLine("  send                send message to client");
                    Console.WriteLine("  send md             send message with metadata to client");
                    Console.WriteLine("  sendasync           send message to a client asynchronously");
                    Console.WriteLine("  sendasync md        send message with metadata to a client asynchronously");
                    Console.WriteLine("  sendandwait         send message and wait for a response");
                    Console.WriteLine("  sendempty           send empty message with metadata");
                    Console.WriteLine("  sendandwait empty   send empty message with metadata and wait for a response");
                    Console.WriteLine("  remove              disconnect client");
                    Console.WriteLine("  psk                 set preshared key");
                    Console.WriteLine("  stats               display server statistics");
                    Console.WriteLine("  stats reset         reset statistics other than start time and uptime");
                    Console.WriteLine("  comp                set the compression type, currently: " + server.Compression.ToString());
                    Console.WriteLine("  debug               enable/disable debug (currently " + server.DebugMessages + ")");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "list":
                    clients = server.ListClients().ToList();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "dispose":
                    server.Dispose();
                    break;

                case "send":
                    ipPort    = InputString("IP:port:", lastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    if (!server.Send(ipPort, userInput))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "send md":
                    ipPort    = InputString("IP:port:", lastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    metadata  = InputDictionary();
                    if (!server.Send(ipPort, metadata, userInput))
                    {
                        Console.WriteLine("Failed");
                    }
                    Console.WriteLine(success);
                    break;

                case "send md large":
                    ipPort   = InputString("IP:port:", lastIpPort, false);
                    metadata = new Dictionary <object, object>();
                    for (int i = 0; i < 100000; i++)
                    {
                        metadata.Add(i, i);
                    }
                    if (!server.Send(ipPort, metadata, "Hello!"))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendasync":
                    ipPort    = InputString("IP:port:", lastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    success   = server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput)).Result;
                    if (!success)
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendasync md":
                    ipPort    = InputString("IP:port:", lastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    metadata  = InputDictionary();
                    success   = server.SendAsync(ipPort, metadata, Encoding.UTF8.GetBytes(userInput)).Result;
                    if (!success)
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendandwait":
                    SendAndWait();
                    break;

                case "sendempty":
                    ipPort   = InputString("IP:port:", lastIpPort, false);
                    metadata = InputDictionary();
                    if (!server.Send(ipPort, metadata))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendandwait empty":
                    SendAndWaitEmpty();
                    break;

                case "remove":
                    ipPort = InputString("IP:port:", lastIpPort, false);
                    server.DisconnectClient(ipPort);
                    break;

                case "psk":
                    server.PresharedKey = InputString("Preshared key:", "1234567812345678", false);
                    break;

                case "stats":
                    Console.WriteLine(server.Stats.ToString());
                    break;

                case "stats reset":
                    server.Stats.Reset();
                    break;

                case "comp":
                    server.Compression = (CompressionType)(Enum.Parse(typeof(CompressionType), InputString("Compression [None|Default|Gzip]:", "None", false)));
                    break;

                case "debug":
                    server.DebugMessages = !server.DebugMessages;
                    Console.WriteLine("Debug set to: " + server.DebugMessages);
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 21
0
        private static void Main(string[] args)
        {
            serverIp   = InputString("Server IP:", "127.0.0.1", false);
            serverPort = InputInteger("Server port:", 9000, true, false);
            useSsl     = InputBoolean("Use SSL:", false);

            if (!useSsl)
            {
                server = new WatsonTcpServer(serverIp, serverPort);
            }
            else
            {
                certFile             = InputString("Certificate file:", "test.pfx", false);
                certPass             = InputString("Certificate password:"******"password", false);
                acceptInvalidCerts   = InputBoolean("Accept Invalid Certs:", true);
                mutualAuthentication = InputBoolean("Mutually authenticate:", true);

                server = new WatsonTcpServer(serverIp, serverPort, certFile, certPass);
                server.AcceptInvalidCertificates = acceptInvalidCerts;
                server.MutuallyAuthenticate      = mutualAuthentication;
            }

            server.ClientConnected    += ClientConnected;
            server.ClientDisconnected += ClientDisconnected;
            server.StreamReceived     += StreamReceived;
            server.SyncRequestReceived = SyncRequestReceived;
            server.Logger = Logger;
            // server.Debug = true;
            server.Start();

            bool runForever = true;

            while (runForever)
            {
                Console.Write("Command [? for help]: ");
                string userInput = Console.ReadLine();

                byte[]       data = null;
                MemoryStream ms   = null;
                Dictionary <object, object> metadata;
                bool success = false;

                List <string> clients;
                string        ipPort;

                if (String.IsNullOrEmpty(userInput))
                {
                    continue;
                }

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?              help (this menu)");
                    Console.WriteLine("  q              quit");
                    Console.WriteLine("  cls            clear screen");
                    Console.WriteLine("  list           list clients");
                    Console.WriteLine("  send           send message to client");
                    Console.WriteLine("  send md        send message with metadata to client");
                    Console.WriteLine("  sendasync      send message to a client asynchronously");
                    Console.WriteLine("  sendasync md   send message with metadata to a client asynchronously");
                    Console.WriteLine("  sendandwait    send message and wait for a response");
                    Console.WriteLine("  remove         disconnect client");
                    Console.WriteLine("  psk            set preshared key");
                    Console.WriteLine("  debug          enable/disable debug (currently " + server.DebugMessages + ")");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "list":
                    clients = server.ListClients().ToList();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "send":
                    ipPort = InputString("IP:port:", lastIpPort, false);
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    data    = Encoding.UTF8.GetBytes(userInput);
                    ms      = new MemoryStream(data);
                    success = server.Send(ipPort, data.Length, ms);
                    Console.WriteLine(success);
                    break;

                case "send md":
                    ipPort   = InputString("IP:port:", lastIpPort, false);
                    metadata = InputDictionary();
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    data    = Encoding.UTF8.GetBytes(userInput);
                    ms      = new MemoryStream(data);
                    success = server.Send(ipPort, metadata, data.Length, ms);
                    Console.WriteLine(success);
                    break;

                case "sendasync":
                    ipPort = InputString("IP:port:", lastIpPort, false);
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    data    = Encoding.UTF8.GetBytes(userInput);
                    ms      = new MemoryStream(data);
                    success = server.SendAsync(ipPort, data.Length, ms).Result;
                    Console.WriteLine(success);
                    break;

                case "sendasync md":
                    ipPort   = InputString("IP:port:", lastIpPort, false);
                    metadata = InputDictionary();
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    data    = Encoding.UTF8.GetBytes(userInput);
                    ms      = new MemoryStream(data);
                    success = server.SendAsync(ipPort, metadata, data.Length, ms).Result;
                    Console.WriteLine(success);
                    break;

                case "sendandwait":
                    SendAndWait();
                    break;

                case "remove":
                    ipPort = InputString("IP:port:", lastIpPort, false);
                    server.DisconnectClient(ipPort);
                    break;

                case "psk":
                    server.PresharedKey = InputString("Preshared key:", "1234567812345678", false);
                    break;

                case "debug":
                    server.DebugMessages = !server.DebugMessages;
                    Console.WriteLine("Debug set to: " + server.DebugMessages);
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 22
0
        private static void Main(string[] args)
        {
            _ServerIp   = InputString("Server IP:", "localhost", false);
            _ServerPort = InputInteger("Server port:", 9000, true, false);
            _Ssl        = InputBoolean("Use SSL:", false);

            try
            {
                if (!_Ssl)
                {
                    _Server = new WatsonTcpServer(_ServerIp, _ServerPort);
                }
                else
                {
                    _CertFile           = InputString("Certificate file:", "test.pfx", false);
                    _CertPass           = InputString("Certificate password:"******"password", false);
                    _AcceptInvalidCerts = InputBoolean("Accept invalid certs:", true);
                    _MutualAuth         = InputBoolean("Mutually authenticate:", false);

                    _Server = new WatsonTcpServer(_ServerIp, _ServerPort, _CertFile, _CertPass);
                    _Server.Settings.AcceptInvalidCertificates = _AcceptInvalidCerts;
                    _Server.Settings.MutuallyAuthenticate      = _MutualAuth;
                }

                _Server.Events.ClientConnected    += ClientConnected;
                _Server.Events.ClientDisconnected += ClientDisconnected;
                _Server.Events.MessageReceived    += MessageReceived;
                _Server.Events.ServerStarted      += ServerStarted;
                _Server.Events.ServerStopped      += ServerStopped;

                _Server.Callbacks.SyncRequestReceived = SyncRequestReceived;

                // _Server.Settings.IdleClientTimeoutSeconds = 10;
                // _Server.Settings.PresharedKey = "0000000000000000";
                _Server.Settings.Logger        = Logger;
                _Server.Settings.DebugMessages = _DebugMessages;

                _Server.Keepalive.EnableTcpKeepAlives    = true;
                _Server.Keepalive.TcpKeepAliveInterval   = 1;
                _Server.Keepalive.TcpKeepAliveTime       = 1;
                _Server.Keepalive.TcpKeepAliveRetryCount = 3;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return;
            }

            _Server.Start();

            bool          runForever = true;
            List <string> clients;
            string        ipPort;
            Dictionary <object, object> metadata;
            bool success = false;

            while (runForever)
            {
                string userInput = InputString("Command [? for help]:", null, false);

                switch (userInput)
                {
                case "?":
                    bool listening = (_Server != null ? _Server.IsListening : false);
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?                   help (this menu)");
                    Console.WriteLine("  q                   quit");
                    Console.WriteLine("  cls                 clear screen");
                    Console.WriteLine("  start               start listening for connections (listening: " + listening.ToString() + ")");
                    Console.WriteLine("  stop                stop listening for connections  (listening: " + listening.ToString() + ")");
                    Console.WriteLine("  list                list clients");
                    Console.WriteLine("  dispose             dispose of the server");
                    Console.WriteLine("  send                send message to client");
                    Console.WriteLine("  send md             send message with metadata to client");
                    Console.WriteLine("  sendasync           send message to a client asynchronously");
                    Console.WriteLine("  sendasync md        send message with metadata to a client asynchronously");
                    Console.WriteLine("  sendandwait         send message and wait for a response");
                    Console.WriteLine("  sendempty           send empty message with metadata");
                    Console.WriteLine("  sendandwait empty   send empty message with metadata and wait for a response");
                    Console.WriteLine("  remove              disconnect client");
                    Console.WriteLine("  remove all          disconnect all clients");
                    Console.WriteLine("  psk                 set preshared key");
                    Console.WriteLine("  stats               display server statistics");
                    Console.WriteLine("  stats reset         reset statistics other than start time and uptime");
                    Console.WriteLine("  debug               enable/disable debug");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "start":
                    _Server.Start();
                    break;

                case "stop":
                    _Server.Stop();
                    break;

                case "list":
                    clients = _Server.ListClients().ToList();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "dispose":
                    _Server.Dispose();
                    break;

                case "send":
                    ipPort    = InputString("IP:port:", _LastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    if (!_Server.Send(ipPort, userInput))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "send10":
                    ipPort    = InputString("IP:port:", _LastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    for (int i = 0; i < 10; i++)
                    {
                        Console.WriteLine("Sending " + i);
                        if (!_Server.Send(ipPort, userInput + "[" + i.ToString() + "]"))
                        {
                            Console.WriteLine("Failed");
                        }
                    }
                    break;

                case "send md":
                    ipPort    = InputString("IP:port:", _LastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    metadata  = InputDictionary();
                    if (!_Server.Send(ipPort, userInput, metadata))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "send md large":
                    ipPort   = InputString("IP:port:", _LastIpPort, false);
                    metadata = new Dictionary <object, object>();
                    for (int i = 0; i < 100000; i++)
                    {
                        metadata.Add(i, i);
                    }
                    if (!_Server.Send(ipPort, "Hello!", metadata))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendasync":
                    ipPort    = InputString("IP:port:", _LastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    success   = _Server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput)).Result;
                    if (!success)
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendasync md":
                    ipPort    = InputString("IP:port:", _LastIpPort, false);
                    userInput = InputString("Data:", null, false);
                    metadata  = InputDictionary();
                    success   = _Server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput), metadata).Result;
                    if (!success)
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendandwait":
                    SendAndWait();
                    break;

                case "sendempty":
                    ipPort   = InputString("IP:port:", _LastIpPort, false);
                    metadata = InputDictionary();
                    if (!_Server.Send(ipPort, "", metadata))
                    {
                        Console.WriteLine("Failed");
                    }
                    break;

                case "sendandwait empty":
                    SendAndWaitEmpty();
                    break;

                case "remove":
                    ipPort = InputString("IP:port:", _LastIpPort, false);
                    _Server.DisconnectClient(ipPort);
                    break;

                case "remove all":
                    _Server.DisconnectClients();
                    break;

                case "psk":
                    _Server.Settings.PresharedKey = InputString("Preshared key:", "1234567812345678", false);
                    break;

                case "stats":
                    Console.WriteLine(_Server.Statistics.ToString());
                    break;

                case "stats reset":
                    _Server.Statistics.Reset();
                    break;

                case "debug":
                    _Server.Settings.DebugMessages = !_Server.Settings.DebugMessages;
                    Console.WriteLine("Debug set to: " + _Server.Settings.DebugMessages);
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 23
0
        private static void Main(string[] args)
        {
            serverIp   = InputString("Server IP:", "127.0.0.1", false);
            serverPort = InputInteger("Server port:", 9000, true, false);
            useSsl     = InputBoolean("Use SSL:", false);

            try
            {
                if (!useSsl)
                {
                    server = new WatsonTcpServer(serverIp, serverPort);
                }
                else
                {
                    certFile             = InputString("Certificate file:", "test.pfx", false);
                    certPass             = InputString("Certificate password:"******"password", false);
                    acceptInvalidCerts   = InputBoolean("Accept invalid certs:", true);
                    mutualAuthentication = InputBoolean("Mutually authenticate:", false);

                    server = new WatsonTcpServer(serverIp, serverPort, certFile, certPass);
                    server.AcceptInvalidCertificates = acceptInvalidCerts;
                    server.MutuallyAuthenticate      = mutualAuthentication;
                }

                server.ClientConnected    += ClientConnected;
                server.ClientDisconnected += ClientDisconnected;
                server.MessageReceived    += MessageReceived;
                // server.IdleClientTimeoutSeconds = 10;
                server.Logger        = Logger;
                server.DebugMessages = debug;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return;
            }

            // server.Start();
            Task serverStart = server.StartAsync();

            bool runForever = true;

            while (runForever)
            {
                Console.Write("Command [? for help]: ");
                string userInput = Console.ReadLine();

                List <string> clients;
                string        ipPort;
                Dictionary <object, object> metadata;
                bool success = false;

                if (String.IsNullOrEmpty(userInput))
                {
                    continue;
                }

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("  ?              help (this menu)");
                    Console.WriteLine("  q              quit");
                    Console.WriteLine("  cls            clear screen");
                    Console.WriteLine("  list           list clients");
                    Console.WriteLine("  dispose        dispose of the connection");
                    Console.WriteLine("  send           send message to client");
                    Console.WriteLine("  send md        send message with metadata to client");
                    Console.WriteLine("  sendasync      send message to a client asynchronously");
                    Console.WriteLine("  sendasync md   send message with metadata to a client asynchronously");
                    Console.WriteLine("  remove         disconnect client");
                    Console.WriteLine("  psk            set preshared key");
                    Console.WriteLine("  stats          display server statistics");
                    Console.WriteLine("  stats reset    reset statistics other than start time and uptime");
                    Console.WriteLine("  conn           show connection count");
                    Console.WriteLine("  max            set max connections (currently " + server.MaxConnections + ")");
                    Console.WriteLine("  debug          enable/disable debug (currently " + server.DebugMessages + ")");
                    break;

                case "q":
                    runForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "list":
                    clients = server.ListClients().ToList();
                    if (clients != null && clients.Count > 0)
                    {
                        Console.WriteLine("Clients");
                        foreach (string curr in clients)
                        {
                            Console.WriteLine("  " + curr);
                        }
                    }
                    else
                    {
                        Console.WriteLine("None");
                    }
                    break;

                case "dispose":
                    server.Dispose();
                    break;

                case "send":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.Send(ipPort, Encoding.UTF8.GetBytes(userInput));
                    Console.WriteLine(success);
                    break;

                case "send md":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    metadata = InputDictionary();
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.Send(ipPort, metadata, Encoding.UTF8.GetBytes(userInput));
                    Console.WriteLine(success);
                    break;

                case "sendasync":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput)).Result;
                    Console.WriteLine(success);
                    break;

                case "sendasync md":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    if (String.IsNullOrEmpty(ipPort))
                    {
                        break;
                    }
                    metadata = InputDictionary();
                    Console.Write("Data: ");
                    userInput = Console.ReadLine();
                    if (String.IsNullOrEmpty(userInput))
                    {
                        break;
                    }
                    success = server.SendAsync(ipPort, metadata, Encoding.UTF8.GetBytes(userInput)).Result;
                    Console.WriteLine(success);
                    break;

                case "remove":
                    Console.Write("IP:Port: ");
                    ipPort = Console.ReadLine();
                    server.DisconnectClient(ipPort);
                    break;

                case "psk":
                    server.PresharedKey = InputString("Preshared key:", "1234567812345678", false);
                    break;

                case "stats":
                    Console.WriteLine(server.Stats.ToString());
                    break;

                case "stats reset":
                    server.Stats.Reset();
                    break;

                case "conn":
                    Console.WriteLine("Connections: " + server.Connections);
                    break;

                case "max":
                    server.MaxConnections = InputInteger("Max connections:", 4096, true, false);
                    break;

                case "debug":
                    server.DebugMessages = !server.DebugMessages;
                    Console.WriteLine("Debug set to: " + server.DebugMessages);
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 24
0
        public bool MessageReceived(string ipPort, byte[] data)
        {
            Object receivedObject = new Object();

            if (data != null && data.Length > 0)
            {
                receivedObject = ByteArrayToObject(data);
                messageEdit.MaskBox.AppendText(DateTime.Now + " Client: " + ipPort + ", command: " + ((PacketDTO)receivedObject).typeCommand + Environment.NewLine);
            }

            switch (((PacketDTO)receivedObject).typeCommand)
            {
            //case Utils.Command.Get_server_plc_db1:
            //    plc = new Plc(CpuType.S71200, "192.168.1.54", 0, 1);
            //    plc.Open();

            //    str = string.Empty;
            //    for (int i = 0; i < 254; i++)
            //        str += "\0";

            //    tagDto = new TagDTO();

            //    tagDto.CurrentWeight = Math.Round(((uint)plc.Read("DB1.DBD0.0")).ConvertToDouble(), 2);
            //    tagDto.OldWeight = ((uint)plc.Read("DB1.DBD4.0")).ConvertToDouble();
            //    tagDto.CellNumber = ((ushort)plc.Read("DB1.DBW8.0")).ConvertToShort();
            //    tagDto.PLCLoadStatus = ((ushort)plc.Read("DB1.DBW10.0")).ConvertToShort();
            //    tagDto.PLCSetOpen = ((ushort)plc.Read("DB1.DBW12.0")).ConvertToShort();
            //    tagDto.PLCSetClose = ((ushort)plc.Read("DB1.DBW14.0")).ConvertToShort();
            //    tagDto.PLCDropoffWind = ((ushort)plc.Read("DB1.DBW16.0")).ConvertToShort();
            //    tagDto.Error = (bool)plc.Read("DB1.DBX18.0");
            //    tagDto.ErrorList = S7.Net.Types.String.FromByteArray(ReadMultipleBytes(plc, 9, 1, 22));
            //    tagDto.Reset = (bool)plc.Read("DB1.DBX276.0");

            //    currentPacket = new PacketDTO(Utils.Command.Get_server_plc_db1, Convert.ToString(DateTime.Now), ObjectToByteArray((Object)tagDto));
            //    server.Send(ipPort, ObjectToByteArray((Object)currentPacket));

            //    break;
            //case Utils.Command.Get_server_plc_db27:
            //    plc = new Plc(CpuType.S71200, "192.168.1.54", 0, 1);
            //    plc.Open();

            //    str = string.Empty;
            //    for (int i = 0; i < 254; i++)
            //        str += "\0";

            //    tagDto = new TagDTO();

            //    tagDto.CurrentWeight = Math.Round(((uint)plc.Read("DB27.DBD0.0")).ConvertToDouble(), 2);
            //    tagDto.OldWeight = ((uint)plc.Read("DB27.DBD4.0")).ConvertToDouble();
            //    tagDto.CellNumber = ((ushort)plc.Read("DB27.DBW8.0")).ConvertToShort();
            //    tagDto.PLCLoadStatus = ((ushort)plc.Read("DB27.DBW10.0")).ConvertToShort();
            //    tagDto.PLCSetOpen = ((ushort)plc.Read("DB27.DBW12.0")).ConvertToShort();
            //    tagDto.PLCSetClose = ((ushort)plc.Read("DB27.DBW14.0")).ConvertToShort();
            //    tagDto.PLCDropoffWind = ((ushort)plc.Read("DB27.DBW16.0")).ConvertToShort();
            //    tagDto.Error = (bool)plc.Read("DB27.DBX18.0");
            //    tagDto.ErrorList = S7.Net.Types.String.FromByteArray(ReadMultipleBytes(plc, 9, 1, 22));
            //    tagDto.Reset = (bool)plc.Read("DB27.DBX276.0");

            //    currentPacket = new PacketDTO(Utils.Command.Get_server_plc_db27, Convert.ToString(DateTime.Now), ObjectToByteArray((Object)tagDto));
            //    server.Send(ipPort, ObjectToByteArray((Object)currentPacket));

            //    break;
            //case Utils.Command.Get_server_plc_db28:
            //    plc = new Plc(CpuType.S71200, "192.168.1.54", 0, 1);
            //    plc.Open();

            //    str = string.Empty;
            //    for (int i = 0; i < 254; i++)
            //        str += "\0";

            //    tagDto = new TagDTO();

            //    tagDto.CurrentWeight = Math.Round(((uint)plc.Read("DB28.DBD0.0")).ConvertToDouble(), 2);
            //    tagDto.OldWeight = ((uint)plc.Read("DB28.DBD4.0")).ConvertToDouble();
            //    tagDto.CellNumber = ((ushort)plc.Read("DB28.DBW8.0")).ConvertToShort();
            //    tagDto.PLCLoadStatus = ((ushort)plc.Read("DB28.DBW10.0")).ConvertToShort();
            //    tagDto.PLCSetOpen = ((ushort)plc.Read("DB28.DBW12.0")).ConvertToShort();
            //    tagDto.PLCSetClose = ((ushort)plc.Read("DB28.DBW14.0")).ConvertToShort();
            //    tagDto.PLCDropoffWind = ((ushort)plc.Read("DB28.DBW16.0")).ConvertToShort();
            //    tagDto.Error = (bool)plc.Read("DB28.DBX18.0");
            //    tagDto.ErrorList = S7.Net.Types.String.FromByteArray(ReadMultipleBytes(plc, 9, 1, 22));
            //    tagDto.Reset = (bool)plc.Read("DB28.DBX276.0");

            //    currentPacket = new PacketDTO(Utils.Command.Get_server_plc_db28, Convert.ToString(DateTime.Now), ObjectToByteArray((Object)tagDto));
            //    server.Send(ipPort, ObjectToByteArray((Object)currentPacket));

            //    break;
            //case Utils.Command.Get_server_plc_db29:
            //    plc = new Plc(CpuType.S71200, "192.168.1.54", 0, 1);
            //    plc.Open();

            //    str = string.Empty;
            //    for (int i = 0; i < 254; i++)
            //        str += "\0";

            //    tagDto = new TagDTO();

            //    tagDto.CurrentWeight = Math.Round(((uint)plc.Read("DB29.DBD0.0")).ConvertToDouble(), 2);
            //    tagDto.OldWeight = ((uint)plc.Read("DB29.DBD4.0")).ConvertToDouble();
            //    tagDto.CellNumber = ((ushort)plc.Read("DB29.DBW8.0")).ConvertToShort();
            //    tagDto.PLCLoadStatus = ((ushort)plc.Read("DB29.DBW10.0")).ConvertToShort();
            //    tagDto.PLCSetOpen = ((ushort)plc.Read("DB29.DBW12.0")).ConvertToShort();
            //    tagDto.PLCSetClose = ((ushort)plc.Read("DB29.DBW14.0")).ConvertToShort();
            //    tagDto.PLCDropoffWind = ((ushort)plc.Read("DB29.DBW16.0")).ConvertToShort();
            //    tagDto.Error = (bool)plc.Read("DB29.DBX18.0");
            //    tagDto.ErrorList = S7.Net.Types.String.FromByteArray(ReadMultipleBytes(plc, 9, 1, 22));
            //    tagDto.Reset = (bool)plc.Read("DB29.DBX276.0");

            //    currentPacket = new PacketDTO(Utils.Command.Get_server_plc_db29, Convert.ToString(DateTime.Now), ObjectToByteArray((Object)tagDto));
            //    server.Send(ipPort, ObjectToByteArray((Object)currentPacket));

            //break;

            default:
                //currentPacket = new PacketDTO(Utils.Command.Not_correct_command, "Не поддерживаемая команда", null);
                server.Send(ipPort, ObjectToByteArray((Object)currentPacket));
                break;
            }


            messageEdit.MaskBox.AppendText(DateTime.Now + " Message from: " + ipPort + ", " + ((PacketDTO)receivedObject).message + Environment.NewLine);
            return(true);
        }