Example #1
0
        static void WebImplementation()
        {
            OrderMatchList = new OrderMatchList(CurrentPrice);
            TradeRecord.SetTradeRecordStartId(TradeRecordStartId);
            TradeRecordList = new List <TradeRecord>();

            IPAddress   hostIp   = Dns.GetHostAddresses(WebHostMatchEngineIp)[0];
            TcpListener listener = new TcpListener(hostIp, WebHostMatchEnginePort);

            listener.Start();
            Console.WriteLine("Waiting for connection...");
            while (true)
            {
                TcpClient     client = listener.AcceptTcpClient();
                NetworkStream ns     = client.GetStream();

                byte[] byteNewOrder           = new byte[1024];
                int    byteNewOrderRealLength = ns.Read(byteNewOrder, 0, byteNewOrder.Length);
                Order  newOrder = Xml.Deserialize(typeof(Order), Encoding.UTF8.GetString(byteNewOrder, 0, byteNewOrderRealLength)) as Order;
                Console.WriteLine("Order is received and latest price is sent.");
                TradeRecordList.AddRange(PrintTradeRecord(OrderMatchList.AddOrderGetTradeRecord(newOrder)));

                CurrentPrice = OrderMatchList.CurrentPrice;
                byte[] bytePrice = Encoding.ASCII.GetBytes(CurrentPrice.ToString());
                ns.Write(bytePrice, 0, bytePrice.Length);
                client.Close();
            }
        }
Example #2
0
 static void ReadOrderFromXml(ref Order[] orderQueue)
 {
     orderQueue = Xml.Deserialize(typeof(Order[]), File.ReadAllText(FileReadPath)) as Order[];
     Console.WriteLine("OrderQueue.xml loaded successfully.");
 }