Structure used to track the number and size of packets of each packets type.

Exemplo n.º 1
0
        static public Dictionary <short, NetworkConnection.PacketStat> GetTotalConnectionStats()
        {
            Dictionary <short, NetworkConnection.PacketStat> stats = new Dictionary <short, NetworkConnection.PacketStat>();

            for (int i = 0; i < s_Clients.Count; i++)
            {
                var client      = s_Clients[i];
                var clientStats = client.GetConnectionStats();
                foreach (short k in clientStats.Keys)
                {
                    if (stats.ContainsKey(k))
                    {
                        NetworkConnection.PacketStat s = stats[k];
                        s.count += clientStats[k].count;
                        s.bytes += clientStats[k].bytes;
                        stats[k] = s;
                    }
                    else
                    {
                        stats[k] = clientStats[k];
                    }
                }
            }
            return(stats);
        }
Exemplo n.º 2
0
        public static Dictionary <short, NetworkConnection.PacketStat> GetTotalConnectionStats()
        {
            Dictionary <short, NetworkConnection.PacketStat> dictionary = new Dictionary <short, NetworkConnection.PacketStat>();

            for (int i = 0; i < NetworkClient.s_Clients.Count; i++)
            {
                NetworkClient networkClient = NetworkClient.s_Clients[i];
                Dictionary <short, NetworkConnection.PacketStat> connectionStats = networkClient.GetConnectionStats();
                foreach (short key in connectionStats.Keys)
                {
                    if (dictionary.ContainsKey(key))
                    {
                        NetworkConnection.PacketStat packetStat = dictionary[key];
                        packetStat.count += connectionStats[key].count;
                        packetStat.bytes += connectionStats[key].bytes;
                        dictionary[key]   = packetStat;
                    }
                    else
                    {
                        dictionary[key] = new NetworkConnection.PacketStat(connectionStats[key]);
                    }
                }
            }
            return(dictionary);
        }
Exemplo n.º 3
0
        /// <summary>
        ///   <para>Retrieves statistics about the network packets sent on all connections.</para>
        /// </summary>
        /// <returns>
        ///   <para>Dictionary of stats.</para>
        /// </returns>
        public static Dictionary <short, NetworkConnection.PacketStat> GetTotalConnectionStats()
        {
            Dictionary <short, NetworkConnection.PacketStat> dictionary = new Dictionary <short, NetworkConnection.PacketStat>();

            using (List <NetworkClient> .Enumerator enumerator1 = NetworkClient.s_Clients.GetEnumerator())
            {
                while (enumerator1.MoveNext())
                {
                    Dictionary <short, NetworkConnection.PacketStat> connectionStats = enumerator1.Current.GetConnectionStats();
                    using (Dictionary <short, NetworkConnection.PacketStat> .KeyCollection.Enumerator enumerator2 = connectionStats.Keys.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            short current = enumerator2.Current;
                            if (dictionary.ContainsKey(current))
                            {
                                NetworkConnection.PacketStat packetStat = dictionary[current];
                                packetStat.count   += connectionStats[current].count;
                                packetStat.bytes   += connectionStats[current].bytes;
                                dictionary[current] = packetStat;
                            }
                            else
                            {
                                dictionary[current] = connectionStats[current];
                            }
                        }
                    }
                }
            }
            return(dictionary);
        }
Exemplo n.º 4
0
 /// <summary>
 ///   <para>Resets the statistics that are returned from NetworkClient.GetConnectionStats().</para>
 /// </summary>
 public void ResetStats()
 {
     for (short key = 0; (int)key < NetworkConnection.s_MaxPacketStats; ++key)
     {
         if (this.m_PacketStats.ContainsKey(key))
         {
             NetworkConnection.PacketStat packetStat = this.m_PacketStats[key];
             packetStat.count = 0;
             packetStat.bytes = 0;
             NetworkTransport.SetPacketStat(0, (int)key, 0, 0);
             NetworkTransport.SetPacketStat(1, (int)key, 0, 0);
         }
     }
 }
Exemplo n.º 5
0
        public static Dictionary <short, NetworkConnection.PacketStat> GetTotalConnectionStats()
        {
            Dictionary <short, NetworkConnection.PacketStat> dictionary = new Dictionary <short, NetworkConnection.PacketStat>();

            foreach (NetworkClient client in s_Clients)
            {
                Dictionary <short, NetworkConnection.PacketStat> connectionStats = client.GetConnectionStats();
                foreach (short num in connectionStats.Keys)
                {
                    if (dictionary.ContainsKey(num))
                    {
                        NetworkConnection.PacketStat stat = dictionary[num];
                        stat.count     += connectionStats[num].count;
                        stat.bytes     += connectionStats[num].bytes;
                        dictionary[num] = stat;
                    }
                    else
                    {
                        dictionary[num] = connectionStats[num];
                    }
                }
            }
            return(dictionary);
        }
Exemplo n.º 6
0
        public static Dictionary <short, NetworkConnection.PacketStat> GetTotalConnectionStats()
        {
            Dictionary <short, NetworkConnection.PacketStat> dictionary = new Dictionary <short, NetworkConnection.PacketStat>();

            foreach (NetworkClient current in NetworkClient.s_Clients)
            {
                Dictionary <short, NetworkConnection.PacketStat> connectionStats = current.GetConnectionStats();
                foreach (short current2 in connectionStats.Keys)
                {
                    if (dictionary.ContainsKey(current2))
                    {
                        NetworkConnection.PacketStat packetStat = dictionary[current2];
                        packetStat.count    += connectionStats[current2].count;
                        packetStat.bytes    += connectionStats[current2].bytes;
                        dictionary[current2] = packetStat;
                    }
                    else
                    {
                        dictionary[current2] = connectionStats[current2];
                    }
                }
            }
            return(dictionary);
        }
 /// <summary>
 ///   <para>This makes the connection process the data contained in the stream, and call handler functions.</para>
 /// </summary>
 /// <param name="reader">Stream that contains data.</param>
 /// <param name="receivedSize">Size of the data.</param>
 /// <param name="channelId">Channel the data was received on.</param>
 protected void HandleReader(NetworkReader reader, int receivedSize, int channelId)
 {
   while ((long) reader.Position < (long) receivedSize)
   {
     ushort num = reader.ReadUInt16();
     short key = reader.ReadInt16();
     byte[] buffer = reader.ReadBytes((int) num);
     NetworkReader networkReader = new NetworkReader(buffer);
     if (this.logNetworkMessages)
     {
       StringBuilder stringBuilder = new StringBuilder();
       for (int index = 0; index < (int) num; ++index)
       {
         stringBuilder.AppendFormat("{0:X2}", (object) buffer[index]);
         if (index > 150)
           break;
       }
       Debug.Log((object) ("ConnectionRecv con:" + (object) this.connectionId + " bytes:" + (object) num + " msgId:" + (object) key + " " + (object) stringBuilder));
     }
     NetworkMessageDelegate networkMessageDelegate = (NetworkMessageDelegate) null;
     if (this.m_MessageHandlersDict.ContainsKey(key))
       networkMessageDelegate = this.m_MessageHandlersDict[key];
     if (networkMessageDelegate != null)
     {
       this.m_NetMsg.msgType = key;
       this.m_NetMsg.reader = networkReader;
       this.m_NetMsg.conn = this;
       this.m_NetMsg.channelId = channelId;
       networkMessageDelegate(this.m_NetMsg);
       this.lastMessageTime = Time.time;
       NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short) 28, "msg", 1);
       if ((int) key > 47)
         NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short) 0, key.ToString() + ":" + key.GetType().Name, 1);
       if (this.m_PacketStats.ContainsKey(key))
       {
         NetworkConnection.PacketStat packetStat = this.m_PacketStats[key];
         ++packetStat.count;
         packetStat.bytes += (int) num;
       }
       else
       {
         NetworkConnection.PacketStat packetStat = new NetworkConnection.PacketStat();
         packetStat.msgType = key;
         ++packetStat.count;
         packetStat.bytes += (int) num;
         this.m_PacketStats[key] = packetStat;
       }
     }
     else
     {
       if (!LogFilter.logError)
         break;
       Debug.LogError((object) ("Unknown message ID " + (object) key + " connId:" + (object) this.connectionId));
       break;
     }
   }
 }
Exemplo n.º 8
0
 /// <summary>
 ///   <para>This makes the connection process the data contained in the stream, and call handler functions.</para>
 /// </summary>
 /// <param name="reader">Stream that contains data.</param>
 /// <param name="receivedSize">Size of the data.</param>
 /// <param name="channelId">Channel the data was received on.</param>
 protected void HandleReader(NetworkReader reader, int receivedSize, int channelId)
 {
     while ((long)reader.Position < (long)receivedSize)
     {
         ushort        num           = reader.ReadUInt16();
         short         key           = reader.ReadInt16();
         byte[]        buffer        = reader.ReadBytes((int)num);
         NetworkReader networkReader = new NetworkReader(buffer);
         if (this.logNetworkMessages)
         {
             StringBuilder stringBuilder = new StringBuilder();
             for (int index = 0; index < (int)num; ++index)
             {
                 stringBuilder.AppendFormat("{0:X2}", (object)buffer[index]);
                 if (index > 150)
                 {
                     break;
                 }
             }
             Debug.Log((object)("ConnectionRecv con:" + (object)this.connectionId + " bytes:" + (object)num + " msgId:" + (object)key + " " + (object)stringBuilder));
         }
         NetworkMessageDelegate networkMessageDelegate = (NetworkMessageDelegate)null;
         if (this.m_MessageHandlersDict.ContainsKey(key))
         {
             networkMessageDelegate = this.m_MessageHandlersDict[key];
         }
         if (networkMessageDelegate != null)
         {
             this.m_NetMsg.msgType   = key;
             this.m_NetMsg.reader    = networkReader;
             this.m_NetMsg.conn      = this;
             this.m_NetMsg.channelId = channelId;
             networkMessageDelegate(this.m_NetMsg);
             this.lastMessageTime = Time.time;
             NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short)28, "msg", 1);
             if ((int)key > 47)
             {
                 NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short)0, key.ToString() + ":" + key.GetType().Name, 1);
             }
             if (this.m_PacketStats.ContainsKey(key))
             {
                 NetworkConnection.PacketStat packetStat = this.m_PacketStats[key];
                 ++packetStat.count;
                 packetStat.bytes += (int)num;
             }
             else
             {
                 NetworkConnection.PacketStat packetStat = new NetworkConnection.PacketStat();
                 packetStat.msgType = key;
                 ++packetStat.count;
                 packetStat.bytes       += (int)num;
                 this.m_PacketStats[key] = packetStat;
             }
         }
         else
         {
             if (!LogFilter.logError)
             {
                 break;
             }
             Debug.LogError((object)("Unknown message ID " + (object)key + " connId:" + (object)this.connectionId));
             break;
         }
     }
 }
 internal void HandleMessage(Dictionary<short, NetworkMessageDelegate> handler, NetworkReader reader, int receivedSize, int channelId)
 {
     while ((long) reader.Position < (long) receivedSize)
       {
     ushort num = reader.ReadUInt16();
     short key = reader.ReadInt16();
     NetworkReader networkReader = new NetworkReader(reader.ReadBytes((int) num));
     NetworkMessageDelegate networkMessageDelegate = (NetworkMessageDelegate) null;
     if (handler.ContainsKey(key))
       networkMessageDelegate = handler[key];
     if (networkMessageDelegate != null)
     {
       this.m_netMsg.msgType = key;
       this.m_netMsg.reader = networkReader;
       this.m_netMsg.conn = this;
       this.m_netMsg.channelId = channelId;
       networkMessageDelegate(this.m_netMsg);
       NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short) 28, "msg", 1);
       if ((int) key > 46)
     NetworkDetailStats.IncrementStat(NetworkDetailStats.NetworkDirection.Incoming, (short) 0, key.ToString() + ":" + key.GetType().Name, 1);
       if (this.m_PacketStats.ContainsKey(key))
       {
     NetworkConnection.PacketStat packetStat = this.m_PacketStats[key];
     ++packetStat.count;
     packetStat.bytes += (int) num;
       }
       else
       {
     NetworkConnection.PacketStat packetStat = new NetworkConnection.PacketStat();
     packetStat.msgType = key;
     ++packetStat.count;
     packetStat.bytes += (int) num;
     this.m_PacketStats[key] = packetStat;
       }
     }
     else
     {
       if (!LogFilter.logError)
     break;
       Debug.LogError((object) ("Unknown message ID " + (object) key));
       break;
     }
       }
 }
 public PacketStat(NetworkConnection.PacketStat s)
 {
     this.msgType = s.msgType;
     this.count   = s.count;
     this.bytes   = s.bytes;
 }
Exemplo n.º 11
0
 /// <summary>
 /// <para>Gets aggregate packet stats for all connections.</para>
 /// </summary>
 /// <returns>
 /// <para>Dictionary of msg types and packet statistics.</para>
 /// </returns>
 public static Dictionary<short, NetworkConnection.PacketStat> GetConnectionStats()
 {
     Dictionary<short, NetworkConnection.PacketStat> dictionary = new Dictionary<short, NetworkConnection.PacketStat>();
     for (int i = 0; i < connections.Count; i++)
     {
         NetworkConnection connection = connections[i];
         if (connection != null)
         {
             foreach (short num2 in connection.packetStats.Keys)
             {
                 if (dictionary.ContainsKey(num2))
                 {
                     NetworkConnection.PacketStat stat = dictionary[num2];
                     stat.count += connection.packetStats[num2].count;
                     stat.bytes += connection.packetStats[num2].bytes;
                     dictionary[num2] = stat;
                 }
                 else
                 {
                     dictionary[num2] = new NetworkConnection.PacketStat(connection.packetStats[num2]);
                 }
             }
         }
     }
     return dictionary;
 }