Пример #1
0
        //Creer une connexion au besoin et ajoute la ligne dans la file de la connexion
        private void processLigne(string ligne)
        {
            ConnexionTransport currentConn;
            Random             rnd = new Random();

            string[] ligneSepare = ligne.Split(':');


            //Recherche d'une connexion existante venant de cette application
            byte processId = Convert.ToByte(ligneSepare[0]);

            //Connecte
            if (tableControleTransport.ContainsKey(processId))
            {
                //deja connecte
                currentConn = tableControleTransport[processId];

                //Ajout de la task dans la file du processus
                currentConn.addCommand(ligneSepare[1]);
                Console.WriteLine("Lecture de S_lec: " + ligne);
            }
            //Non connecte
            else if (ligneSepare[1] == "DebutDesDonnees")
            {
                int dest = 0, src = 0;
                //Dest et Src doivent etre diffrent..
                while (dest == src)
                {
                    dest = rnd.Next(1, 255);
                    src  = rnd.Next(1, 255);
                }
                //Nouvelle connexion
                currentConn = new ConnexionTransport(Convert.ToByte(src), Convert.ToByte(dest), processId);
                tableControleTransport.Add(processId, currentConn);

                //Ajout de la task dans la file du processus
                currentConn.addCommand(ligneSepare[1]);
                Console.WriteLine("Lecture de S_lec: " + ligne);
            }
            //Commandes non conforme (envoie de donnees sans demande de connexion)
            else
            {
                Console.WriteLine("\'" + ligneSepare[1] + "\' Non Conforme! Demande du processus #" + ligneSepare[0] + " Ignorée.");
            }
        }
Пример #2
0
 public EntiteeReseau(ConnexionTransport connexionTransport)
 {
     this.connexionTransport = connexionTransport;
     L_lec_sem = new Semaphore(1, 1);
     L_ecr_sem = new Semaphore(1, 1);
 }