public void Run() { //ByteRecycler must be allowed to allocate the size of the biggest message ByteRecycler.AddPoolSize(128 * 1024 * 1024); NetworkHandler <StateObject> handler = new NetworkHandler <StateObject>(false); handler.RegisterConnectCallback(Connected); handler.RegisterDisconnectCallback(Disconnected); handler.RegisterCallback(0, GotMessage); handler.RegisterCallback(1, RelayReliable); DarkNetwork <StateObject> dn = new DarkNetwork <StateObject>(); dn.SetupServer(new IPEndPoint(IPAddress.IPv6Any, 12345), handler); int messageID = 0; while (true) { NetworkMessage nm = NetworkMessage.Create(0, 2048, NetworkMessageType.UNORDERED_UNRELIABLE); byte[] sendBytes = Encoding.UTF8.GetBytes("Message " + messageID++); Array.Copy(sendBytes, 0, nm.data.data, 0, sendBytes.Length); nm.data.size = sendBytes.Length; handler.SendMessageToAll(nm); //Recycler<NetworkMessage>.GarbageCollect(500, 1000); //ByteRecycler.GarbageCollect(2048, 500, 1000); //ByteRecycler.GarbageCollect(128 * 1024 * 1024, 2, 4); //PrintRecyclerStats(); Thread.Sleep(1000); } }
public void Run() { r.NextBytes(randomBytes); //ByteRecycler must be allowed to allocate the size of the biggest message ByteRecycler.AddPoolSize(128 * 1024 * 1024); NetworkHandler <StateObject> handler = new NetworkHandler <StateObject>(false); handler.RegisterConnectCallback(Connected); handler.RegisterDisconnectCallback(Disconnected); handler.RegisterCallback(0, GotMessage); handler.RegisterCallback(1, ReliableReceive); DarkNetwork <StateObject> dn = new DarkNetwork <StateObject>(); IPAddress netAddr = IPAddress.Parse("2403:5800:9100:5b00:76da:38ff:fea3:9dbe"); dn.SetupClient(new IPEndPoint(netAddr, 12345), handler); Thread.Sleep(1000); NetworkMessage nmbig = NetworkMessage.Create(1, randomBytes.Length, NetworkMessageType.ORDERED_RELIABLE); Array.Copy(randomBytes, 0, nmbig.data.data, 0, randomBytes.Length); handler.SendMessage(nmbig); int messageID = 0; while (running) { NetworkMessage nm = NetworkMessage.Create(0, 2048, NetworkMessageType.ORDERED_UNRELIABLE); byte[] sendBytes = Encoding.UTF8.GetBytes("Message " + messageID++); Array.Copy(sendBytes, 0, nm.data.data, 0, sendBytes.Length); nm.data.size = sendBytes.Length; handler.SendMessage(nm); //Recycler<NetworkMessage>.GarbageCollect(500, 1000); //ByteRecycler.GarbageCollect(2048, 500, 1000); //ByteRecycler.GarbageCollect(128 * 1024 * 1024, 2, 4); //PrintRecyclerStats(); Thread.Sleep(1000); } dn.Shutdown(); }