/// <summary> /// Listen for incoming data on the port - creates messages from incoming data and adds it to processing list. /// </summary> private void ListenForData() { //start listening the port tcpListener = new TcpTransportListener(TcpTransport.LOCALHOST, port); tcpListener.Start(); // Loop checking for data to become available while (isRunning) { try { // wait for client to connect TcpClient client = tcpListener.WaitForConnection(); Console.WriteLine("Client connected"); transport = new Transport.TcpTransport(client); if (!transport.IsConnected()) { break; } if (tcpProtocol == null) { break; } byte[] messageRaw = transport.Read(); // Add new message to inbound message queue lock (rawMessageQ) { rawMessageQ.Enqueue(messageRaw); } } catch (Exception e) { Console.WriteLine("Listen data error:{0}", e.Message); } processGate.Set(); // wake up the process thread to process new messages } }