public EchoClient(int id, Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config) { this.id = id; this.config = config; this.benchmarkStatistics = benchmarkStatistics; deliveryMethod = LiteNetLibBenchmark.GetDeliveryMethod(config.Transmission); listener = new EventBasedNetListener(); netManager = new NetManager(listener); if (!config.Address.Contains(':')) { // For LiteNetLib 1.0 and above //netManager.IPv6Mode = IPv6Mode.Disabled; // LiteNetLib up to 0.9.4 netManager.IPv6Enabled = IPv6Mode.Disabled; } netManager.UpdateTime = Utilities.CalculateTimeout(config.ClientTickRate); netManager.UnsyncedEvents = true; netManager.DisconnectTimeout = 10000; isConnected = false; isDisposed = false; listener.PeerConnectedEvent += OnPeerConnected; listener.PeerDisconnectedEvent += OnPeerDisconnected; listener.NetworkReceiveEvent += OnNetworkReceive; listener.NetworkErrorEvent += OnNetworkError; }
public EchoServer(Configuration config, BenchmarkStatistics benchmarkStatistics) : base(IPAddress.Parse(config.Address), config.Port) { ManualMode = config.Test == TestType.Manual; // Use Pinned Object Heap to reduce GC pressure message = GC.AllocateArray <byte>(config.MessageByteSize, true); config.Message.CopyTo(message, 0); NetCoreServerBenchmark.ProcessTransmissionType(config.Transmission); this.benchmarkStatistics = benchmarkStatistics; }
public EchoServer(Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config) { this.config = config; this.benchmarkStatistics = benchmarkStatistics; communicationChannel = Kcp2kBenchmark.GetChannel(config.Transmission); var interval = (uint)Utilities.CalculateTimeout(config.ServerTickRate); server = new KcpServer(OnConnected, OnReceiveMessage, OnDisconnected, DualMode, NoDelay, interval); serverThread = new Thread(TickLoop); serverThread.Name = "Kcp2k Server"; serverThread.Priority = ThreadPriority.AboveNormal; }
public EchoServer(Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config) { this.config = config; this.benchmarkStatistics = benchmarkStatistics; timeout = Utilities.CalculateTimeout(this.config.ServerTickRate); packetFlags = ENetBenchmark.GetPacketFlags(config.Transmission); host = new Host(); address = new Address(); address.Port = (ushort)config.Port; address.SetHost(config.Address); serverThread = new Thread(ListenLoop); serverThread.Name = "Enet Server"; serverThread.Priority = ThreadPriority.AboveNormal; }
public EchoClient(int id, Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config) { this.id = id; this.config = config; this.benchmarkStatistics = benchmarkStatistics; timeout = Utilities.CalculateTimeout(this.config.ClientTickRate); packetFlags = ENetBenchmark.GetPacketFlags(config.Transmission); host = new Host(); address = new Address(); address.SetHost(config.Address); address.Port = (ushort)config.Port; isDisposed = false; listenThread = new Thread(ListenLoop); listenThread.Name = $"ENet Client {id}"; listenThread.IsBackground = true; }
public EchoClient(int id, Configuration config, BenchmarkStatistics benchmarkStatistics) : base(config) { this.id = id; this.config = config; this.benchmarkStatistics = benchmarkStatistics; noDelay = true; communicationChannel = Kcp2kBenchmark.GetChannel(config.Transmission); client = new KcpClientConnection(); client.OnAuthenticated = OnPeerConnected; client.OnData = OnNetworkReceive; client.OnDisconnected = OnPeerDisconnected; tickThread = new Thread(TickLoop); tickThread.Name = $"Kcp2k Client {id}"; tickThread.IsBackground = true; isConnected = false; isDisposed = false; }
protected override IClient CreateNewClient(int id, Configuration config, BenchmarkStatistics statistics) { return(new EchoClient(id, config, statistics)); }
protected override IServer CreateNewServer(Configuration config, BenchmarkStatistics statistics) { return(new EchoServer(config, statistics)); }
public override void Initialize(Configuration config, BenchmarkStatistics benchmarkStatistics) { ENet.Library.Initialize(); base.Initialize(config, benchmarkStatistics); }