Пример #1
0
        private static void ConnectionPoolManagerDemo()
        {
            int port = 13145;

            INetServerProvider    netServerProvider = NetServerProvider.CreateProvider();
            INetTokenPoolProvider tokenPool         = NetTokenPoolProvider.CreateProvider(60);

            tokenPool.ConnectionTimeout = 60;
            SocketToken _sToken = null;

            netServerProvider.AcceptHandler = new OnAcceptHandler((sToken) => {
                _sToken = sToken;
                tokenPool.InsertToken(new NetConnectionToken()
                {
                    Token = sToken
                });
            });

            bool isOk = netServerProvider.Start(port);

            if (isOk)
            {
                INetClientProvider netClientProvider = NetClientProvider.CreateProvider();
                netClientProvider.DisconnectedHanlder = new OnDisconnectedHandler((sToken) =>
                {
                    Console.WriteLine("client disconnected");
                });
                bool rt = netClientProvider.ConnectTo(port, "127.0.0.1");
                if (rt)
                {
                    while (tokenPool.Count == 0)
                    {
                        Thread.Sleep(10);
                    }
                    var  rtToken   = tokenPool.GetTokenBySocketToken(_sToken);
                    bool refreshRt = tokenPool.RefreshExpireToken(_sToken);
                    rt = tokenPool.RemoveToken(new NetConnectionToken()
                    {
                        Token = _sToken
                    });
                    Console.WriteLine("pool count:" + tokenPool.Count);
                    Console.ReadKey();
                }
            }
        }