public static void Main(string[] args) { String ip; int portSZ = 0; int portCloud = 0; int portControl = 0; int portLRM = 0; int idW = 0; Console.Title = ("Węzeł Sieciowy"); if (args.Length == 6) { idW = Convert.ToInt32(args[0]); ip = args[1]; portSZ = Convert.ToInt32(args[2]); portCloud = Convert.ToInt32(args[3]); portControl = Convert.ToInt32(args[4]); portLRM = Convert.ToInt32(args[5]); } else { Console.Write("Podaj ip Systemu Zarządzania lub wybierz zestaw: "); ip = Console.ReadLine(); if (ip[0].Equals('g')) { idW = Convert.ToInt32(ip.Substring(1, 1)); ip = "127.0.0.1"; portSZ = 10000; portCloud = 10100; portLRM = 10101; portControl = 10102; } else { Console.Write("Podaj port Systemu Zarządzania: "); portSZ = Convert.ToInt32(Console.ReadLine()); Console.Write("Podaj port Chmury Kablowej: "); portCloud = Convert.ToInt32(Console.ReadLine()); Console.Write("Podaj port Systemu Sterowania: "); portControl = Convert.ToInt32(Console.ReadLine()); } } Console.Title = ("Węzeł Sieciowy, Id: " + (idW.ToString())); //ustawienie tekstu belki tytulowej Siec_Init Network = new Siec_Init(ip, portSZ, portCloud, idW); SiecControl NetworkC = new SiecControl(ip, ip, portLRM, portControl, idW); new Agent(Network); new AgentControl(NetworkC); }
//private Siec_Data data = null; public Test(Siec_Init Network) { czlonek = null; //czlonek.Insert(0, "010203"); //czlonek[1].Insert(0, "kikakikakiaka"); //czlonek[2].Insert(0, "balcer ma slaba glowe"); //czlonek[3].Insert(0, "piter ma zla deserializacje"); //czlonek[4].Insert(0, "karolina jest najladniejsza na swiecie"); Siec_Data data = new Siec_Data(Network); this.Network = Network; //data.Send_Data(czlonek); }
private Siec_Init Network; // standardowy obiekt komunikacyjny public Komutator(Siec_Init Network) { this.Network = Network; this.idW = Network.idW; connTable = new String[5]; //inicjalizacja tablicy kierowania for (int i = 0; i < connTable.Length; i++) { connTable[i] = "000000000000"; } conversionTable = new String[5]; for (int i = 0; i < conversionTable.Length; i++) { conversionTable[i] = "000000000000"; } connected = false; krosowanieT = new Thread(Krosuj); //wątek odpowiedzialny za forwarding danych krosowanieT.Start(); }
public Siec_Data(Siec_Init Network) { this.Network = Network; //this.gniazdo = Network.gniazdo; }
/** command[10]: * logowanie nasluchuje odpowiedzi na 0 - conf * polaczenie nr 1 na 1. np. 23 - 2 in 3 out * nr 2 na 2 itd max 5 polaczen * nr 3 * nr 4 * nr 5 * * konwersja portów nr 6. * disconnect na 9 * * bledy na 10 **/ public Agent(Siec_Init Network) { this.Network = Network; connections = 0; Boolean connCC = false; Boolean connSZ = false; communicationT = new Sygnal_Text(); kom = new Komutator(Network); //Thread closerT = new Thread(Maintenance.closer); //closerT.Start(); for (int i = 0; i < command.Length; i++) { command[i] = null; } if (Network.connectService(true)) { Console.WriteLine("Nawiązano połączenie z Systemem Zarządzania."); connSZ = true; } else { Console.WriteLine("\nSystem Zarządzania niedostępny."); } if (Network.connectService(false)) { Console.WriteLine("Nawiązano połączenie z Chmurą Kablową."); connCC = true; } else { Console.WriteLine("\nChmura Kablowa niedostępna."); } if (connSZ) { listenSZ = new Thread(new ParameterizedThreadStart(Listen_Text)); listenSZ.Start(true); } if (connCC) { listenCC = new Thread(new ParameterizedThreadStart(Listen_Text)); //przypisanie watka listenCC.Start(false); //rozpoczecie nasluchiwania CC } Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie if (connSZ && connCC) //jeśli sa polaczenia rozpocznij logowanie do systemów { if (Loguj(true)) { Console.WriteLine("gitara. Logowanie do Systemu Zarządzania zakończone sukcesem."); //jesli logowanie zakonczone sukcesem, kontynuuj, jesli nie, zakoncz nasluch. if (Loguj(false)) { Console.WriteLine("gitara. Logowanie do Chmury Kablowej zakończone sukcesem."); } else { Console.WriteLine("\nLogowanie do Chmury Kablowej zakończone porażką. bęben."); } } else { Console.WriteLine("\nLogowanie do Systemu Zarządzania zakończone porażką. bęben. Węzeł na złom."); } } else //zamyka połączenia, nasłuch wyłącza program. { try { listenSZ.Abort(); listenCC.Abort(); } catch (ThreadStateException e) { } catch (NullReferenceException e) { } Network.DisconnectService(true); Network.DisconnectService(false); Console.WriteLine("\n\nWystąpiły błedy, naciśnij dowolny klawisz aby zakończyć."); Console.ReadKey(); Environment.Exit(0); } Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie try { listenCC.Abort(); //wylaczenie nasluchu tekstowego na CC Thread.Sleep(1500); //Network.inputCC.Close(); //Network.outputCC.Close(); Network.inputCloud = null; Network.outputCloud = null; Console.WriteLine("Wyłączono nasluch tekstowy CC."); } catch (NullReferenceException e) { Console.WriteLine("Nie wyłączono nasłuchu."); } catch (EncoderFallbackException e) { Console.WriteLine("Nie wyłączono nasłuchu."); } Console.Write("\n------------------------------\n\n"); //robi odstęp dla czystości w oknie //if (Console.ReadLine().Equals("x")) //{ // Test testuj = new Test(Network); //} //Loguj(true); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! KONIEC KONSTRUKTORA !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! }