예제 #1
0
        /// <summary>
        /// MainProgram
        /// </summary>
        static void Main(string[] args)
        {
            int         ClientsCount = 0;
            TcpListener ServerSocket = new TcpListener(IPAddress.Any, 15051);

            ServerSocket.Start();

            Logger.InitLogger();
            Logger.Log.Info("Server started");

            _ctsUpdateToken = new CancellationTokenSource();
            _ctsWorkToken   = new CancellationTokenSource();

            _GlobalOrderBook.Init();
            _TradeHistory.Init();
            TMainModel.SetOrderBook(_GlobalOrderBook);
            TMainModel.SetOrderTradeHistory(_TradeHistory);
            _DClients = TMainModel.DClientsInit();


            while (true)
            {
                TcpClient client = ServerSocket.AcceptTcpClient();
                string    UsGuid = Guid.NewGuid().ToString();
                TMainModel.AddCllientToDict(UsGuid, client);
                _newclientDetected = true;
                Console.WriteLine($"New client {client.Client.RemoteEndPoint} connected!!");
                Logger.Log.Info($"New client {client.Client.RemoteEndPoint} connected!!");
                var CheckClient  = Task.Run(() => TMainModel.IsConnected(client), _ctsUpdateToken.Token);
                var HandleClient = Task.Run(() => HandleClients(UsGuid), _ctsWorkToken.Token);
                ClientsCount++;
            }
        }