예제 #1
0
        public void DemarrerServeur()
        {
            //Récupère info  iD Serveur
            cdServeur = 1;

            //Initilisation d'un serveur TCP
            listener = ServeurTCP.DemarrageServeur(ServeurManager.getAdresseIp(1), Convert.ToInt32(ServeurManager.getTrftPort(1)));

            //Démarrage du serveur HELIO TRANSFERT
            DemarrerServeur(listener);
            return;
        }
예제 #2
0
        //Excute un transfert
        private static void transfertVersServeurs(ServeurFlux flux)
        {
            ClientTCP          tcpClient = new ClientTCP();
            FTPHeliosTransfert ftpclient = new FTPHeliosTransfert();
            String             etat;

            FileInfo fInfo         = new FileInfo(@"" + flux.cheminLocal + "");
            long     tailleFichier = fInfo.Length;
            String   nomFichier    = fInfo.Name;
            String   cheminFichier = fInfo.DirectoryName;

            //Initialise un transfert vers serveur
            TransfertManager.ajoutTransfert(flux.codeFlux, Convert.ToInt32(ServeurManager.getCdClient(flux.codeServeur)), "Démarrage transfert", tailleFichier.ToString(), "En cours", ServeurManager.getAdresseIp(flux.codeServeur), DateTime.Now);

            //Récupération Code Transfert
            int cdTrft = TransfertManager.getCdTransfert(flux.codeFlux, Convert.ToInt32(ServeurManager.getCdClient(flux.codeServeur)), "En cours");

            //Enregistrement Log
            Log.EcrirLog("DEBUT - Lancement du Transfert N° " + cdTrft.ToString());

            //Connexion au serveur
            etat = tcpClient.connexionStream(ServeurManager.getAdresseIp(flux.codeServeur), Convert.ToInt32(ServeurManager.getTrftPort(flux.codeServeur)));

            if (etat == "true")
            {
                //Enregistrement des transaction
                TransactionManager.ajoutTransaction(cdTrft, "Connexion Serveur Helios Transfert", null, "OK", DateTime.Now);

                //Demande envoi de transfert
                etat = tcpClient.DemandeTransfertFichier(Convert.ToInt32(ServeurManager.getCdClient(flux.codeServeur)), flux.codeFlux, nomFichier, tailleFichier.ToString());
                if (etat == "true")
                {
                    //Déconnexion TCP - Permet de libérer le serveur d'une connexion (Modèle Asynchrone)
                    tcpClient.deconnexionStream();

                    //Enregistrement des transaction
                    TransactionManager.ajoutTransaction(cdTrft, "Demande de transfert de fichier", null, "OK", DateTime.Now);

                    //Envoi vers FTP
                    if (ftpclient.TransfertFTP(flux.codeServeur, cdTrft, cheminFichier, nomFichier) == true)
                    {
                        tcpClient.connexionStream(ServeurManager.getAdresseIp(flux.codeServeur), Convert.ToInt32(ServeurManager.getTrftPort(flux.codeServeur)));

                        etat = tcpClient.VerificationIntegraliteFichier(Convert.ToInt32(ServeurManager.getCdClient(flux.codeServeur)), flux.codeFlux, nomFichier, tailleFichier.ToString());

                        if (etat == "true")
                        {
                            //Enregistrement des transaction
                            TransactionManager.ajoutTransaction(cdTrft, "Vérification Intégralité du fichier envoyé", null, "OK", DateTime.Now);

                            //Terminer le transfert
                            TransfertManager.modifTransfert(cdTrft, "Terminer");

                            //Enregistrement Log
                            Log.EcrirLog("FIN - Transfert N° " + cdTrft.ToString());

                            return;
                        }
                        else
                        {
                            //Enregistrement des transaction
                            TransactionManager.ajoutTransaction(cdTrft, "Vérification Intégralité du fichier envoyé", etat, "ERREUR", DateTime.Now);
                            Log.EcrirLog(cdTrft.ToString() + " - " + etat);
                        }
                    }
                    else
                    {
                        tcpClient.EnvoiErreur(Convert.ToInt32(ServeurManager.getCdClient(flux.codeServeur)), flux.codeFlux, nomFichier, "Erreur FTP");
                        Log.EcrirLog(cdTrft.ToString() + " - " + etat);
                    }
                }
                else
                {
                    //Enregistrement des transaction
                    TransactionManager.ajoutTransaction(cdTrft, "Demande de transfert de fichier", etat, "ERREUR", DateTime.Now);
                    Log.EcrirLog(cdTrft.ToString() + " - " + etat);
                }
            }
            else
            {
                //Enregistrement des transaction
                TransactionManager.ajoutTransaction(cdTrft, "Connexion Serveur Helios Transfert", "Connexion Impossible", "ERREUR", DateTime.Now);
                Log.EcrirLog(cdTrft.ToString() + " - " + etat);
            }

            //Terminer le transfert
            TransfertManager.modifTransfert(cdTrft, "Terminer");

            //Enregistrement Log
            Log.EcrirLog("FIN - Transfert N° " + cdTrft.ToString());
        }