예제 #1
0
        public NetworkStats GetNetworkStats(int?connectionId)
        {
            byte errorAsByte;

            var networkStats = new NetworkStats
            {
                RecentOutgoingBandwidthInBytes     = bandwidthAverager.OutgoingBandwidthInBytes,
                IncomingPacketCountForAllHosts     = NetworkTransport.GetIncomingPacketCountForAllHosts(),
                IncomingPacketDropCountForAllHosts = NetworkTransport.GetIncomingPacketDropCountForAllHosts(),
                NetworkTimestamp         = NetworkTransport.GetNetworkTimestamp(),
                OutgoingFullBytesCount   = NetworkTransport.GetOutgoingFullBytesCount(),
                OutgoingMessageCount     = NetworkTransport.GetOutgoingMessageCount(),
                OutgoingPacketCount      = NetworkTransport.GetOutgoingPacketCount(),
                OutgoingSystemBytesCount = NetworkTransport.GetOutgoingSystemBytesCount(),
                OutgoingUserBytesCount   = NetworkTransport.GetOutgoingUserBytesCount(),
            };

            if (socketId.HasValue)
            {
                networkStats.IncomingMessageQueueSize        = NetworkTransport.GetIncomingMessageQueueSize(socketId.Value, out errorAsByte);
                networkStats.OutgoingFullBytesCountForHost   = NetworkTransport.GetOutgoingFullBytesCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingMessageCountForHost     = NetworkTransport.GetOutgoingMessageCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingMessageQueueSize        = NetworkTransport.GetOutgoingMessageQueueSize(socketId.Value, out errorAsByte);
                networkStats.OutgoingPacketCountForHost      = NetworkTransport.GetOutgoingPacketCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingSystemBytesCountForHost = NetworkTransport.GetOutgoingSystemBytesCountForHost(socketId.Value, out errorAsByte);
                networkStats.OutgoingUserBytesCountForHost   = NetworkTransport.GetOutgoingUserBytesCountForHost(socketId.Value, out errorAsByte);

                if (connectionId.HasValue)
                {
                    networkStats.AckBufferCount                        = NetworkTransport.GetAckBufferCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.CurrentRTT                            = NetworkTransport.GetCurrentRTT(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.IncomingPacketCount                   = NetworkTransport.GetIncomingPacketCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.IncomingPacketLossCount               = NetworkTransport.GetIncomingPacketLossCount(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.MaxAllowedBandwidth                   = NetworkTransport.GetMaxAllowedBandwidth(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingFullBytesCountForConnection   = NetworkTransport.GetOutgoingFullBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingMessageCountForConnection     = NetworkTransport.GetOutgoingMessageCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketCountForConnection      = NetworkTransport.GetOutgoingPacketCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketNetworkLossPercent      = NetworkTransport.GetOutgoingPacketNetworkLossPercent(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingPacketOverflowLossPercent     = NetworkTransport.GetOutgoingPacketOverflowLossPercent(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingSystemBytesCountForConnection = NetworkTransport.GetOutgoingSystemBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                    networkStats.OutgoingUserBytesCountForConnection   = NetworkTransport.GetOutgoingUserBytesCountForConnection(socketId.Value, connectionId.Value, out errorAsByte);
                }
            }

            return(networkStats);
        }
예제 #2
0
    void GUIForConnection(int hostID, int connectionID)
    {
        int HEIGHT = 20;

        Rect rect = new Rect(10, 20, 200, HEIGHT);;
        byte err;

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "HOST:" + hostID + "     CONN:" + connectionID);

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Ack Buffer:" + NetworkTransport.GetAckBufferCount(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);

        GUI.Label(rect, "Incoming Packets:" + NetworkTransport.GetIncomingPacketCount(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Incoming Packets Lost:" + NetworkTransport.GetIncomingPacketLossCount(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Max Bandwidth:" + NetworkTransport.GetMaxAllowedBandwidth(hostID, connectionID, out err));


        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "OUTGOING");

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Full Bytes:" + NetworkTransport.GetOutgoingFullBytesCountForConnection(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "User Bytes:" + NetworkTransport.GetOutgoingUserBytesCountForConnection(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Network PKT Loss %:" + NetworkTransport.GetOutgoingPacketNetworkLossPercent(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Overflow PKT Loss %:" + NetworkTransport.GetOutgoingPacketOverflowLossPercent(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Message Count:" + NetworkTransport.GetOutgoingMessageCountForConnection(hostID, connectionID, out err));

        rect = IncRect(rect, HEIGHT);
        GUI.Label(rect, "Packet Count:" + NetworkTransport.GetOutgoingPacketCountForConnection(hostID, connectionID, out err));
    }