protected void Init()
 {
     if (_baseclient == null)
     {
         _baseclient = target as BaseNetworkClient;
     }
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var kernel = new Kernel(new KernelConfig());

            _networkClient = kernel.Get <BaseNetworkClient>();
            _networkClient.Init();
            _networkClient.Open(new NetworkClientConfig
            {
                LocalEndPoint = new IPEndPoint(IPAddress.Any, 0),
            });

            _masterServerBrowser = new MasterServerBrowser(_networkClient, new[]
            {
                new IPEndPoint(GetIP("master1.teeworlds.com"), 8300),
                new IPEndPoint(GetIP("master2.teeworlds.com"), 8300),
                new IPEndPoint(GetIP("master3.teeworlds.com"), 8300),
                new IPEndPoint(GetIP("master4.teeworlds.com"), 8300),
            });

            _masterServerBrowser.RequestServers();

            while (true)
            {
                while (_networkClient.Receive(out var packet))
                {
                    if (packet.ClientId == -1)
                    {
                        _masterServerBrowser.OnPacket(packet);
                    }
                }

                _masterServerBrowser.Tick();
                Thread.Sleep(5);
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var kernel = new Kernel(new KernelConfig());

            _isRunning     = true;
            _consoleReader = new Thread(ConsoleRead);
            _consoleReader.Start();

            _networkClient = kernel.Get <BaseNetworkClient>();
            _networkClient.Init();
            _networkClient.Open(new NetworkClientConfig
            {
                LocalEndPoint = new IPEndPoint(IPAddress.Any, 0),
            });

            SendGetInfo();

            Chunk packet = null;
            uint  token  = 0;

            while (_isRunning)
            {
                while (_networkClient.Receive(ref packet, ref token))
                {
                    {
                    }
                }

                Thread.Sleep(5);
            }

            //_masterServerBrowser = new MasterServerBrowser(_networkClient, new[]
            //{
            //    new IPEndPoint(GetIP("master1.teeworlds.com"), 8300),
            //    new IPEndPoint(GetIP("master2.teeworlds.com"), 8300),
            //    new IPEndPoint(GetIP("master3.teeworlds.com"), 8300),
            //    new IPEndPoint(GetIP("master4.teeworlds.com"), 8300),
            //});

            //_masterServerBrowser.RequestServers();

            //Chunk packet = null;
            //uint token = 0;

            //while (true)
            //{
            //    while (_networkClient.Receive(ref packet, ref token))
            //    {
            //        if (packet.ClientId == -1)
            //            _masterServerBrowser.OnPacket(packet);
            //    }

            //    _masterServerBrowser.Tick();
            //    Thread.Sleep(5);
            //}
        }
Exemplo n.º 4
0
 private void ClientReadCallback(BaseNetworkClient networkClient, Byte[] buffer, UInt32 size)
 {
     m_ReadResult = false;
     if (m_ClientTestData.Length == size)
     {
         for (UInt32 index = 0; index < size; ++index)
         {
             if (buffer[index] != m_ClientTestData[index])
             {
                 return;
             }
         }
         m_ReadResult = true;
     }
 }
Exemplo n.º 5
0
 public MasterServerBrowser(BaseNetworkClient netClient, IPEndPoint[] masterServers)
 {
     ServersSnapshot = new ServersSnapshot();
     _masterServers  = masterServers;
     _networkClient  = netClient;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Unity's start method.
 /// </summary>
 private void Start()
 {
     client = ClientAPI.masterServerClient;
     StartCoroutine(Ping());
     OpenChatDialog();
 }
Exemplo n.º 7
0
    void OnGUI()
    {
        if (EditorApplication.isPlaying)
        {
            if (Selection.activeGameObject && Selection.activeGameObject.TryGetComponent(out BaseNetworkClient t))
            {
                _baseclient = t;
            }

            if (_baseclient)
            {
                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical("box");
                GUILayout.Label("Client information", EditorStyles.boldLabel);
                GUILayout.Label("Address " + _baseclient.Address, EditorStyles.boldLabel);
                GUILayout.Label("Port " + _baseclient.Port, EditorStyles.boldLabel);
                GUILayout.Space(15);
                GUILayout.Label("Ping (last) " + _baseclient.GetPingLast(), EditorStyles.boldLabel);
                GUILayout.Label("Ping (average) " + _baseclient.GetPingAverage(), EditorStyles.boldLabel);
                GUILayout.Label("Ping (lowest) " + _baseclient.GetPingLowest(), EditorStyles.boldLabel);
                GUILayout.Label("\nMinimal network stats");

                float b_sent = _baseclient.GetNetStat(RNSPerSecondMetrics.ACTUAL_BYTES_SENT);
                float b_rcv  = _baseclient.GetNetStat(RNSPerSecondMetrics.ACTUAL_BYTES_RECEIVED);

                if (b_sent < 1024)
                {
                    GUILayout.Label("Sended " + b_sent.ToString("f0") + " bytes", EditorStyles.boldLabel);
                }

                if (b_sent > 1024 && b_sent < 1048576)
                {
                    GUILayout.Label("Sended " + (b_sent / 1024).ToString("f1") + " kb", EditorStyles.boldLabel);
                }
                else if (b_sent >= 1048576)
                {
                    GUILayout.Label("Sended " + ((b_sent / 1024) / 1024).ToString("f2") + " mb", EditorStyles.boldLabel);
                }

                if (b_rcv < 1024)
                {
                    GUILayout.Label("Received " + b_rcv.ToString("f0") + " bytes", EditorStyles.boldLabel);
                }

                if (b_rcv > 1024 && b_rcv < 1048576)
                {
                    GUILayout.Label("Received " + (b_rcv / 1024).ToString("f1") + " kb", EditorStyles.boldLabel);
                }
                else if (b_rcv >= 1048576)
                {
                    GUILayout.Label("Received " + ((b_rcv / 1024) / 1024).ToString("f2") + " mb", EditorStyles.boldLabel);
                }
                GUILayout.Label("Loss: " + _baseclient.GetLoss() + "%", EditorStyles.boldLabel);
                GUILayout.EndVertical();

                GUILayout.BeginVertical("box");
                GUILayout.Label("Full Network Stats\n" + _baseclient.GetNetworkStats());
                GUILayout.EndVertical();

                GUILayout.EndHorizontal();
            }
            else
            {
                EditorGUILayout.HelpBox("Pick NetworkClient component for get debug information...", MessageType.Error);
            }
        }
        else
        {
            EditorGUILayout.HelpBox("To get client debug information, you must run the game", MessageType.Error);
        }
    }