Exemplo n.º 1
0
        //Fonction permettant d'établir une connexion avec un distant
        public void EtablirConnexion(string _identifiant)
        {
            ConnexionTransport conn = connexions.EtablirConnexion(_identifiant);

            //Tentative d'ouverture de connexion
            if (conn != null)
            {
                int numConn          = conn.getNumeroConnexion();
                int addrSource       = conn.getAdresseSource();
                int addrDestinataire = conn.getAdresseDestination();

                //Envoie de la primitive de demande de connexion vers la couche Réseau
                Utility.EcrireDansFichier("S_ecr.txt", "Ouverture de connexion pour " + _identifiant + "...", true);
                ecrire_vers_reseau(numConn + ";" + N_CONNECT.req + ";" + addrSource + ";" + addrDestinataire);
            }
        }
        //Fermeture d'une connexion selon son numéro de connexion
        public void FermerConnexion(int _numConn, String raison)
        {
            ConnexionTransport conn = this [_numConn];

            sem.WaitOne();      //Blocage
            listeConnexions.Remove(conn);

            //Libération des adresses utilisées
            adressesUtilises [conn.getAdresseSource()]      = false;
            adressesUtilises [conn.getAdresseDestination()] = false;
            nbAdressesUtilises -= 2;

            sem.Release();      //Déblocage

            //Affichage en console et écriture dans le fichier de sortie
            Utility.AfficherDansConsole("Fermeture de connexion pour " + conn.getIdentifiant() + " - " + raison, Constantes.OUTPUT_COLOR);
            Utility.EcrireDansFichier("S_ecr.txt", "Fermeture de connexion pour " + conn.getIdentifiant() + " - " + raison, true);
        }
Exemplo n.º 3
0
 //Focntion permettant de faire la demande de fermeture de toutes les connexions, utilisée à la fin d'exécution des commandes
 //du fichier S_lec.txt
 public void DemanderFermetureConnexions()
 {
     while (connexions.nbConnexions > 0)
     {
         //Fermeture d'une connexion
         ConnexionTransport conn = connexions.findConnexionAtIndex(0);
         ecrire_vers_reseau(conn.getNumeroConnexion() + ";" + N_DISCONNECT.req + ";" + conn.getAdresseDestination());
         connexions.FermerConnexion(conn.getNumeroConnexion(), "Fin d'exécution");
     }
 }