Beispiel #1
0
 public TcpServer(int port, Driver driver, Thread httpThread)
 {
     this.httpThread = httpThread;
     this.driver     = driver;
     tcpListener     = new TcpListener(IPAddress.Any, port);
     DriveCommand.CreateFile();
 }
Beispiel #2
0
        public void Start()
        {
            isActive = true;
            tcpListener.Start();
            Log?.Invoke("Tcp Server started", new EventArgs());

            while (true)
            {
                using (TcpClient client = tcpListener.AcceptTcpClient())
                {
                    //using (NetworkStream stream = client.GetStream())
                    {
                        if (client.ReceiveBufferSize > 0)
                        {
                            StreamReader inputStream  = new StreamReader(client.GetStream());
                            StreamWriter outputStream = new StreamWriter(client.GetStream());
                            string       request      = inputStream.ReadLine();

                            Log?.Invoke(request, new EventArgs());
                            isActive = HandleRequest(request);


                            outputStream.WriteLine("OK");
                            outputStream.Flush();
                            inputStream.Close();
                            outputStream.Close();
                        }
                    }
                }

                if (!isActive)
                {
                    Thread driveThread = new Thread(new ThreadStart(driver.Drive));
                    driveThread.Start();
                    driveThread.Join();
                    DriveCommand.CreateFile();
                    isActive = true;
                }
            }
        }