Exemplo n.º 1
0
        ///////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Traite une requete
        /// </summary>
        /// <param name="client"></param>
        ///////////////////////////////////////////////////////////////////////////////////////////////
        public static void traiteRequete(object client)
        {
            nbRequetes++;
            Mainform.UpdateNbRequetes();
            try
            {
                bool          continuer    = true;
                TcpClient     tcpClient    = client as TcpClient;
                NetworkStream clntStream   = tcpClient.GetStream();
                SocketUtils   clientStream = new SocketUtils(clntStream);
                //do
                //{
                string commande = clientStream.LireLigne();
                if (commande?.Length > 0)
                {
                    Mainform.WriteMessageToConsole($"Requête: {commande}");

                    switch (commande)
                    {
                    case TEST_ADRESSE: testAdresse(clientStream); break;

                    case CREER_REPERTOIRE: creerRepertoire(clientStream); break;

                    case FICHIER_EXISTE: fichierExiste(clientStream); break;

                    case UPLOAD_FICHIER: transferFichier(clientStream); break;

                    case TRANSFERT_FICHIER_DATE: transferFichierDate(clientStream); break;

                    case CHANGE_DATE: setDate(clientStream); break;

                    case INVALIDES_CHEMIN: caracteresInvalidesChemin(clientStream); break;

                    case FERMER: continuer = false; break;

                    case LISTE_FICHIERS: listeFichiers(clientStream); break;

                    case LISTE_REPERTOIRES: listeRepertoires(clientStream); break;

                    case DOWNLOAD_FICHIER: downloadFichier(clientStream); break;

                    default:
                        Mainform.WriteErrorToConsole($"Commande inconnue: '{commande}'"); break;
                    }
                }
                //}
                //while (continuer);
                Mainform.WriteMessageToConsole("Socket closed");
            }
            catch (Exception e)
            {
                Mainform.WriteErrorToConsole("Erreur dans le traitement de la requête");
                Mainform.WriteExceptionToConsole(e);
            }

            nbRequetes--;
            Mainform.UpdateNbRequetes();
        }