Example #1
0
        /// <summary>
        /// Listen while listener is running
        /// </summary>
        private static void Listen()
        {
            while (Running)
            {
                try
                {
                    TcpClient client        = Listener.AcceptTcpClient();
                    string    clientAddress = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString();

                    NetworkStream stream = client.GetStream();

                    while (client.Available == 0)
                    {
                    }

                    byte[] buffer = new byte[client.Available];
                    stream.Read(buffer, 0, buffer.Length);

                    stream.Close();

                    switch (Package.TryParse(buffer, out Package package))
                    {
                    case 0:
                        SProgram.WritePackageReceiveInfo(package, clientAddress);
                        SDataController.ProcessingReceivedPackage(package, clientAddress);
                        break;

                    case 1:
                        SProgram.WritePackageSendFailInfo(buffer, clientAddress);
                        ReceivedIncorrectPackage(clientAddress);
                        break;

                    case 2:
                        SProgram.WritePackageSendFailInfo(buffer, clientAddress);
                        ReceivedIncorrectPackage(clientAddress);
                        break;
                    }
                }
                catch (SocketException)
                {
                }
            }
        }