private static void ConnectionPoolTest() { INetServerProvider serverProvider = NetServerProvider.CreateProvider(4096, 2); INetTokenPoolProvider poolProvider = NetTokenPoolProvider.CreateProvider(60); poolProvider.TimerEnable(false); int port = 12345; serverProvider.DisconnectedHanlder = new OnDisconnectedHandler((s) => { Console.WriteLine(s.TokenIpEndPoint + "server disconnected"); }); serverProvider.AcceptHandler = new OnAcceptHandler((s) => { poolProvider.InsertToken(new NetConnectionToken(s)); }); bool isStart = serverProvider.Start(port); if (isStart) { again: for (int i = 0; i < 2; ++i) { INetClientProvider clientProvider = NetClientProvider.CreateProvider(); clientProvider.DisconnectedHanlder = new OnDisconnectedHandler((s) => { // Console.WriteLine(s.TokenIpEndPoint + " client disconnected"); }); bool isConnected = clientProvider.ConnectTo(port, "127.0.0.1"); Console.WriteLine(isConnected); } Console.WriteLine(poolProvider.Count); string info = Console.ReadLine(); if (info == "again") { while (poolProvider.Count > 0) { // poolProvider.Clear(true); var item = poolProvider.GetTopToken(); if (item != null) { serverProvider.CloseToken(item.Token); poolProvider.RemoveToken(item, false); } } goto again; } else if (info == "stop") { serverProvider.Stop(); goto again; } Console.ReadKey(); } }