Exemple #1
0
 /// <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
     }
 }