private void Button_Click(object sender, RoutedEventArgs e)
        {
            TextSearchR.Text = "";
            ManagedClient user = new ManagedClient();
            int port = Convert.ToInt32(Tport.Text);
            int LN = Convert.ToInt32(TLN.Text);
            string Msg = TCN.Text;
            for (int i = 0; i < l1.Items.Count; i++)
                Msg +="||"+l1.Items[i];
            for (int i = 0; i < KeyWord.Items.Count; i++)
                Msg += "||#" + KeyWord.Items[i];
            Random rd = new Random();
            int rand = rd.Next();
            port += rand % 100;
            string tport = port.ToString();
            user.start(port, 5, 0, LN, Msg,tport);
            string useit = user.getResult();
            string big = DateTime.Now.ToString();
            string[] vect = useit.Split('?');
            string display = "";
            //for (int i = 1; i < vect.Length; i++)
            //{
            //    string[] vect2 = vect[i].Split('&');
            //    display = display + vect2[0] + "\n---Duration: " + vect2[1] + "ms\n---Endtime: " + big + "." + vect2[2] + "\n\n";
            //}
            List<string> listArr = new List<string>();
            for (int i = 1; i < vect.Length; i++)
            {
                string[] vect2 = vect[i].Split('&');
                display = display + vect2[0] + "\n---Duration: " + vect2[1] + "ms\n---Endtime: " + big + "." + vect2[2] + "\n\n";
                listArr.Add(vect2[1]);
            }
            string[] time = listArr.ToArray();
            int amount = 0;
            int largest = 0;
            int shortest = 0;
            for (int i = 0; i < time.Length; i++)
            {
                int each = Convert.ToInt32(time[i]);
                if (each > largest)
                    largest = each;
                if (i == 0)
                    shortest = largest;
                if (each < shortest)
                    shortest = each;
                amount += each;
            }

            int average = amount / time.Length;
            string Saverage = average.ToString();
            STT4.Text = shortest.ToString()+"ms";
            LGT_Copy2.Text = largest.ToString()+"ms";
            Saverage += "ms";
            UAV2.Text = Saverage;
            TextSearchR.Text = display;
        }
コード例 #2
0
        public void Init()
        {
            this.broadcast = new UDPSocket();
            this.broadcast.ReceivedPacket += Broadcast_ReceivedPacket;

            this.managedClient                 = new ManagedClient();
            this.managedClient.BufferSize      = 2000;
            this.managedClient.ReceivedPacket += ManagedClient_ReceivedPacket;
            this.managedClient.Connected      += ManagedClient_Connected;
            this.managedClient.Disconnected   += ManagedClient_Disconnected;

            this.handlePacket = new HandlePacket(this.managedClient.Logger);
        }
        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            SResult.Text = "";
            ManagedClient user = new ManagedClient();
            int port = Convert.ToInt32(Uport.Text);
            int LN = Convert.ToInt32(ULN.Text);
            string Msg = "";
            for (int i = 0; i < FileBox2.Items.Count; i++)
            {
                if (i == 0)
                    Msg += FileBox2.Items[i];
                else
                    Msg += "||" + FileBox2.Items[i];
            }
            Random rd = new Random();
            int rand = rd.Next();
            port += rand % 100;
            string uport = port.ToString();
            user.start(port, 4, 0, LN, Msg, uport);
            string useit = user.getResult();
            string big = DateTime.Now.ToString();
            string[] vect = useit.Split('?');
            List<string> listArr = new List<string>();
            string display = "";
            for (int i = 1; i < vect.Length; i++)
            {
                string[] vect2 = vect[i].Split('&');
                display = display + vect2[0] + "\n---Duration: " + vect2[1] + "ms\n---Endtime: " + big + "." + vect2[2] + "\n\n";
                listArr.Add(vect2[1]);
            }
            string[] time = listArr.ToArray();
            int amount = 0;
            int largest = 0;
            int shortest = 0;
            for (int i = 0; i < time.Length;i++ )
            {
                int each = Convert.ToInt32(time[i]);

                if (each > largest)
                    largest = each;
                if (i == 0)
                    shortest = largest;
                if (each < shortest)
                    shortest = each;
                amount += each;
            }
            int average = amount / time.Length;
            string Saverage = average.ToString();
            Saverage+="ms";
            UAV.Text = Saverage;
            STT1.Text = shortest.ToString()+"ms";
            LGT.Text = largest.ToString()+"ms";
            ShowResult1.Text = display;
        }
        static void Main(string[] args)
        {
            ManagedClient user = new ManagedClient();
            user.start(8082, 1, 0, 2, "test test test", "8082");

        }
コード例 #5
0
        static void Main(string[] args)
        {
            _clients    = new Dictionary <int, ManagedClient>();
            _random     = new Random();
            _outWriter  = new BinaryWriter(Console.OpenStandardOutput());
            _writerLock = new object();

            bool quit = false;

            Console.CancelKeyPress += (sender, a) =>
            {
                quit = true;
            };

            NetcodeLibrary.SetLogLevel(NetcodeLogLevel.None);

            using (var reader = new BinaryReader(Console.OpenStandardInput()))
            {
                while (!quit)
                {
                    try
                    {
                        var size  = reader.ReadInt32();
                        var bytes = reader.ReadBytes(size);

                        var json         = Encoding.UTF8.GetString(bytes);
                        var messageArray = JsonConvert.DeserializeObject <JArray>(json);

                        var messageType = messageArray[0].Value <int>();
                        var messageId   = messageArray[1].Value <int>();

                        try
                        {
                            switch (messageType)
                            {
                            case TypeCheckPresence:
                            {
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                        JValue.FromObject(HelperVersion),
                                    });
                                break;
                            }

                            case TypeCreateClient:
                            {
                                var id = _random.Next();
                                while (_clients.ContainsKey(id))
                                {
                                    id = _random.Next();
                                }
                                var isIpV6 = false;
                                if (messageArray.Count >= 3)
                                {
                                    isIpV6 = messageArray[2].Value <bool>();
                                }
                                _clients[id] = new ManagedClient
                                {
                                    client         = new Client(isIpV6 ? "::" : "0.0.0.0", 0),
                                    tickRate       = 60,
                                    shouldRun      = true,
                                    time           = 0,
                                    pendingPackets = new ConcurrentQueue <byte[]>(),
                                };
                                _clients[id].thread = new Thread(ClientRun);
                                _clients[id].thread.IsBackground = true;
                                _clients[id].thread.Start(id);
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultClientCreated),
                                        JValue.FromObject(messageId),
                                        JValue.FromObject(id),
                                    });
                                break;
                            }

                            case TypeSetClientTickRate:
                            {
                                var id       = messageArray[2].Value <int>();
                                var tickRate = messageArray[3].Value <int>();
                                _clients[id].tickRate = tickRate;
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                    });
                                break;
                            }

                            case TypeConnectClient:
                            {
                                var id = messageArray[2].Value <int>();
                                var connectTokenBase64 = messageArray[3].Value <string>();
                                _clients[id].client.Connect(Convert.FromBase64String(connectTokenBase64));
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                    });
                                break;
                            }

                            case TypeSendPacket:
                            {
                                var id         = messageArray[2].Value <int>();
                                var packetData = messageArray[3].Value <string>();
                                _clients[id].pendingPackets.Enqueue(Convert.FromBase64String(packetData));
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                    });
                                break;
                            }

                            case TypeGetClientState:
                            {
                                var    id = messageArray[2].Value <int>();
                                string state;
                                switch (_clients[id].client.State)
                                {
                                case ClientState.Connected:
                                    state = "connected";
                                    break;

                                case ClientState.ConnectionDenied:
                                    state = "connectionDenied";
                                    break;

                                case ClientState.ConnectionRequestTimeout:
                                    state = "connectionRequestTimeout";
                                    break;

                                case ClientState.ConnectionResponseTimeout:
                                    state = "connectionResponseTimeout";
                                    break;

                                case ClientState.ConnectionTimedOut:
                                    state = "connectionTimedOut";
                                    break;

                                case ClientState.ConnectTokenExpired:
                                    state = "connectTokenExpired";
                                    break;

                                case ClientState.Disconnected:
                                    state = "disconnected";
                                    break;

                                case ClientState.InvalidConnectToken:
                                    state = "invalidConnectToken";
                                    break;

                                case ClientState.SendingConnectionRequest:
                                    state = "sendingConnectionRequest";
                                    break;

                                case ClientState.SendingConnectionResponse:
                                    state = "sendingConnectionResponse";
                                    break;

                                default:
                                    state = "unknown";
                                    break;
                                }
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                        JValue.FromObject(state),
                                    });
                                break;
                            }

                            case TypeDestroyClient:
                            {
                                var id = messageArray[2].Value <int>();
                                _clients[id].shouldRun = false;
                                WriteMessage(new JArray
                                    {
                                        JValue.FromObject(ResultSuccess),
                                        JValue.FromObject(messageId),
                                    });
                                break;
                            }
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteMessage(new JArray
                            {
                                JValue.FromObject(ResultErrorInternal),
                                JValue.FromObject(messageId),
                                JValue.FromObject(ex.ToString()),
                            });
                        }
                    }
                    catch (EndOfStreamException)
                    {
                        // Requested to close by browser process.
                        return;
                    }
                }
            }
        }