public void Start() { PacketPayload = new Byte[PayloadSize]; SendStatistics = new ConnectionStatistics[NumberOfConnections]; _threads = new Thread[NumberOfConnections]; _pingObjects = new Ping[NumberOfConnections]; _numberOfActiveConnections = NumberOfConnections; _pingOptions.DontFragment = DontFragmentIpPacket; _pingOptions.Ttl = IpTtlField; TotalSentBytes = 0; TotalRecivedBytes = 0; if (TerminationMode != TerminationCriteria.Data) { TotalBytesToSend = UInt64.MaxValue - PayloadSize; } for (int i = 0; i < NumberOfConnections; i++) { SendStatistics[i] = new ConnectionStatistics(); _pingObjects[i] = new Ping(); _threads[i] = new Thread(SendLoop); _threads[i].IsBackground = true; _threads[i].Name = i.ToString(); _threads[i].Start(); } }
void HandleConnectionStatisticsOnMeasurementFound(ConnectionStatistics connectionStatistics, TcpConnection c, ConnectionStatistics.ConnectionTimes connectionTimes) { Console.WriteLine("measurement: {0}:{1} <-> {2}:{3} - {4}", c.Flows[0].address.ToString(), c.Flows[0].port, c.Flows[1].address, c.Flows[1].port, connectionTimes); }
void HandleConnectionStatisticsOnMeasurementEvent(ConnectionStatistics connectionStatistics, TcpConnection c, ConnectionStatistics.EventTypes eventType) { Console.WriteLine("eventType: {0}:{1} <-> {2}:{3} {4}", c.Flows[0].address.ToString(), c.Flows[0].port, c.Flows[1].address, c.Flows[1].port, eventType); }
private void RefreshStatistics(ConnectionStatistics connectionStatistics) { listViewStats.Items.Clear(); foreach (string key in connectionStatistics.OriginalStats.Keys) { ListViewItem lvi = new ListViewItem(key); lvi.SubItems.Add(connectionStatistics.OriginalStats[key].ToString()); listViewStats.Items.Add(lvi); } }
public void TearDown() { IList <ConnectionStatistics.ConnectionInfo> connections = ConnectionStatistics.GetOpenConnections().ToList(); if (connections.Count > 0) { foreach (ConnectionStatistics.ConnectionInfo c in connections) { Console.WriteLine("Open connection to {0} ({1}).", c.Url, c.Method); } Assert.AreEqual(0, connections.Count, "All connections must have been closed (showing currently number of open connections)."); } }
internal static void ServerConsole() { if (Interface.Oxide.ServerConsole == null) { return; } Interface.Oxide.ServerConsole.Title = () => $"{Server.PlayerCount} | {DedicatedServerBypass.Settings.ServerName}"; Interface.Oxide.ServerConsole.Status1Left = () => DedicatedServerBypass.Settings.ServerName; Interface.Oxide.ServerConsole.Status1Right = () => { TimeSpan time = TimeSpan.FromSeconds(Time.realtimeSinceStartup); string uptime = $"{time.TotalHours:00}h{time.Minutes:00}m{time.Seconds:00}s".TrimStart(' ', 'd', 'h', 'm', 's', '0'); return($"{Mathf.RoundToInt(1f / Time.smoothDeltaTime)}fps, {uptime}"); }; Interface.Oxide.ServerConsole.Status2Left = () => { string players = $"{Server.PlayerCount}/{Server.PlayerLimit} players"; int sleepers = CodeHatch.StarForge.Sleeping.PlayerSleeperObject.AllSleeperObjects.Count; int entities = CodeHatch.Engine.Core.Cache.Entity.GetAll().Count; return($"{players}, {sleepers + (sleepers.Equals(1) ? " sleeper" : " sleepers")}, {entities + (entities.Equals(1) ? " entity" : " entities")}"); }; Interface.Oxide.ServerConsole.Status2Right = () => { if (uLink.NetworkTime.serverTime <= 0) { return("not connected"); } double bytesReceived = 0; double bytesSent = 0; foreach (Player player in Server.AllPlayers) { if (!player.Connection.IsConnected) { continue; } ConnectionStatistics statistics = player.Connection.Statistics; bytesReceived += statistics.BytesReceivedPerSecond; bytesSent += statistics.BytesSentPerSecond; } return($"{Utility.FormatBytes(bytesReceived)}/s in, {Utility.FormatBytes(bytesSent)}/s out"); }; Interface.Oxide.ServerConsole.Status3Left = () => $"{GameClock.Instance.TimeOfDayAsClockString()}, Weather: {Weather.Instance.CurrentWeather}"; Interface.Oxide.ServerConsole.Status3Right = () => $"Oxide.ReignOfKings {AssemblyVersion}"; Interface.Oxide.ServerConsole.Status3RightColor = ConsoleColor.Yellow; }
public void Start() { DatagramPayload = new Byte[DatagramSize]; SendStatistics = new ConnectionStatistics[NumberOfConnections]; _threads = new Thread[NumberOfConnections]; _udpClients = new UdpClient[NumberOfConnections]; _numberOfActiveConnections = NumberOfConnections; TotalSentBytes = 0; if (TerminationMode != TerminationCriteria.Data) { TotalBytesToSend = UInt64.MaxValue - DatagramSize; } for (int i = 0; i < NumberOfConnections; i++) { SendStatistics[i] = new ConnectionStatistics(); _udpClients[i] = new UdpClient(); _threads[i] = new Thread(SendLoop); _threads[i].Name = i.ToString(); _threads[i].Start(); } }
public async Task WhenSendingMessagesToEchoServer_ThenStatisticsAreUpdated( [LinuxInstance(InitializeScript = InitializeScripts.InstallEchoServer)] ResourceTask <InstanceLocator> vm, [Credential(Role = PredefinedRole.IapTunnelUser)] ResourceTask <ICredential> credential, [Values( 1, (int)DataMessage.MaxDataLength, (int)DataMessage.MaxDataLength * 2)] int length) { var message = new byte[length]; FillArray(message); var locator = await vm; var listener = SshRelayListener.CreateLocalListener( new IapTunnelingEndpoint( await credential, await vm, 7, IapTunnelingEndpoint.DefaultNetworkInterface, TestProject.UserAgent), new AllowAllRelayPolicy()); listener.ClientAcceptLimit = 1; // Terminate after first connection. listener.ListenAsync(CancellationToken.None).ContinueWith(_ => { }); var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(new IPEndPoint(IPAddress.Loopback, listener.LocalPort)); var clientStreamStats = new ConnectionStatistics(); var clientStream = new SocketStream(socket, clientStreamStats); using (var tokenSource = new CancellationTokenSource()) { // Write full payload. await clientStream.WriteAsync(message, 0, message.Length, tokenSource.Token); Assert.AreEqual(length, clientStreamStats.BytesTransmitted); // Read entire response. var response = new byte[length]; int totalBytesRead = 0; while (true) { var bytesRead = await clientStream.ReadAsync( response, totalBytesRead, response.Length - totalBytesRead, tokenSource.Token); totalBytesRead += bytesRead; if (bytesRead == 0 || totalBytesRead >= length) { break; } } await clientStream.CloseAsync(tokenSource.Token); await Task.Delay(50); Assert.AreEqual(length, totalBytesRead, "bytes read"); Assert.AreEqual(length, clientStreamStats.BytesReceived, "client received"); Assert.AreEqual(length, listener.Statistics.BytesReceived, "server received"); Assert.AreEqual(length, listener.Statistics.BytesTransmitted, "server sent"); } }
public void SendTests() { ConnectionStatistics statistics = new ConnectionStatistics(); statistics.LogUnreliableSend(10); Assert.AreEqual(1, statistics.MessagesSent); Assert.AreEqual(1, statistics.UnreliableMessagesSent); Assert.AreEqual(0, statistics.ReliableMessagesSent); Assert.AreEqual(0, statistics.FragmentedMessagesSent); Assert.AreEqual(0, statistics.AcknowledgementMessagesSent); Assert.AreEqual(0, statistics.HelloMessagesSent); Assert.AreEqual(10, statistics.DataBytesSent); statistics.LogReliableSend(5); Assert.AreEqual(2, statistics.MessagesSent); Assert.AreEqual(1, statistics.UnreliableMessagesSent); Assert.AreEqual(1, statistics.ReliableMessagesSent); Assert.AreEqual(0, statistics.FragmentedMessagesSent); Assert.AreEqual(0, statistics.AcknowledgementMessagesSent); Assert.AreEqual(0, statistics.HelloMessagesSent); Assert.AreEqual(15, statistics.DataBytesSent); statistics.LogFragmentedSend(6); Assert.AreEqual(3, statistics.MessagesSent); Assert.AreEqual(1, statistics.UnreliableMessagesSent); Assert.AreEqual(1, statistics.ReliableMessagesSent); Assert.AreEqual(1, statistics.FragmentedMessagesSent); Assert.AreEqual(0, statistics.AcknowledgementMessagesSent); Assert.AreEqual(0, statistics.HelloMessagesSent); Assert.AreEqual(21, statistics.DataBytesSent); statistics.LogAcknowledgementSend(); Assert.AreEqual(4, statistics.MessagesSent); Assert.AreEqual(1, statistics.UnreliableMessagesSent); Assert.AreEqual(1, statistics.ReliableMessagesSent); Assert.AreEqual(1, statistics.FragmentedMessagesSent); Assert.AreEqual(1, statistics.AcknowledgementMessagesSent); Assert.AreEqual(0, statistics.HelloMessagesSent); Assert.AreEqual(21, statistics.DataBytesSent); statistics.LogHelloSend(); Assert.AreEqual(5, statistics.MessagesSent); Assert.AreEqual(1, statistics.UnreliableMessagesSent); Assert.AreEqual(1, statistics.ReliableMessagesSent); Assert.AreEqual(1, statistics.FragmentedMessagesSent); Assert.AreEqual(1, statistics.AcknowledgementMessagesSent); Assert.AreEqual(1, statistics.HelloMessagesSent); Assert.AreEqual(21, statistics.DataBytesSent); Assert.AreEqual(0, statistics.MessagesReceived); Assert.AreEqual(0, statistics.UnreliableMessagesReceived); Assert.AreEqual(0, statistics.ReliableMessagesReceived); Assert.AreEqual(0, statistics.FragmentedMessagesReceived); Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(0, statistics.HelloMessagesReceived); Assert.AreEqual(0, statistics.DataBytesReceived); Assert.AreEqual(0, statistics.TotalBytesReceived); statistics.LogPacketSend(11); Assert.AreEqual(11, statistics.TotalBytesSent); }
public void ReceiveTests() { ConnectionStatistics statistics = new ConnectionStatistics(); statistics.LogUnreliableReceive(10, 11); Assert.AreEqual(1, statistics.MessagesReceived); Assert.AreEqual(1, statistics.UnreliableMessagesReceived); Assert.AreEqual(0, statistics.ReliableMessagesReceived); Assert.AreEqual(0, statistics.FragmentedMessagesReceived); Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(0, statistics.HelloMessagesReceived); Assert.AreEqual(10, statistics.DataBytesReceived); Assert.AreEqual(11, statistics.TotalBytesReceived); statistics.LogReliableReceive(5, 8); Assert.AreEqual(2, statistics.MessagesReceived); Assert.AreEqual(1, statistics.UnreliableMessagesReceived); Assert.AreEqual(1, statistics.ReliableMessagesReceived); Assert.AreEqual(0, statistics.FragmentedMessagesReceived); Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(0, statistics.HelloMessagesReceived); Assert.AreEqual(15, statistics.DataBytesReceived); Assert.AreEqual(19, statistics.TotalBytesReceived); statistics.LogFragmentedReceive(6, 10); Assert.AreEqual(3, statistics.MessagesReceived); Assert.AreEqual(1, statistics.UnreliableMessagesReceived); Assert.AreEqual(1, statistics.ReliableMessagesReceived); Assert.AreEqual(1, statistics.FragmentedMessagesReceived); Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(0, statistics.HelloMessagesReceived); Assert.AreEqual(21, statistics.DataBytesReceived); Assert.AreEqual(29, statistics.TotalBytesReceived); statistics.LogAcknowledgementReceive(4); Assert.AreEqual(4, statistics.MessagesReceived); Assert.AreEqual(1, statistics.UnreliableMessagesReceived); Assert.AreEqual(1, statistics.ReliableMessagesReceived); Assert.AreEqual(1, statistics.FragmentedMessagesReceived); Assert.AreEqual(1, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(0, statistics.HelloMessagesReceived); Assert.AreEqual(21, statistics.DataBytesReceived); Assert.AreEqual(33, statistics.TotalBytesReceived); statistics.LogHelloReceive(7); Assert.AreEqual(5, statistics.MessagesReceived); Assert.AreEqual(1, statistics.UnreliableMessagesReceived); Assert.AreEqual(1, statistics.ReliableMessagesReceived); Assert.AreEqual(1, statistics.FragmentedMessagesReceived); Assert.AreEqual(1, statistics.AcknowledgementMessagesReceived); Assert.AreEqual(1, statistics.HelloMessagesReceived); Assert.AreEqual(21, statistics.DataBytesReceived); Assert.AreEqual(40, statistics.TotalBytesReceived); Assert.AreEqual(0, statistics.MessagesSent); Assert.AreEqual(0, statistics.UnreliableMessagesSent); Assert.AreEqual(0, statistics.ReliableMessagesSent); Assert.AreEqual(0, statistics.FragmentedMessagesSent); Assert.AreEqual(0, statistics.AcknowledgementMessagesSent); Assert.AreEqual(0, statistics.HelloMessagesSent); Assert.AreEqual(0, statistics.DataBytesSent); Assert.AreEqual(0, statistics.TotalBytesSent); }