//KeepAliveMessage packet = new KeepAliveMessage();
        public void StartListner()
        {
            for (int i = 0; i < 10; i++)
            {
                bgpListner[i] = new BGPListner();
                //bgpListner[l].ListnerSocket();
                if (i < 3)
                {
                    AS = GlobalVariables.AS1;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as1_IP_peifix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as1_IP_peifix + i, AS);
                }
                else if (i > 2 && i < 7)
                {
                    AS = GlobalVariables.AS2;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as2_IP_Prefix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as2_IP_Prefix + i, AS);
                }
                else if (i > 6 && i < 10)
                {
                    AS = GlobalVariables.AS3;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as3_IP_Prefix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as3_IP_Prefix + i, AS);
                }

                Thread.Sleep(500);
                //recient computers can handle 500 connections
            }
        }
示例#2
0
        public void StartListner()
        {
            Console.WriteLine("There is a total of 10 routers which will be split into 3 AS. How many routers do you want in AS1? (1-8)");
            temp = Console.ReadLine();
            try
            {
                as1Last = int.Parse(temp) - 1; //-1 since routers start from 0
                if (as1Last < 0)
                {
                    Console.WriteLine("The character you typed wasn't in the given bounds, so we set 1 routers in the AS1.");
                    as1Last = 0;
                }
                else if (as1Last > 7)
                {
                    Console.WriteLine("The character you typed wasn't in the given bounds, so we set 8 routers in the AS1.");
                    as1Last = 7;
                }
            }catch
            {
                Console.WriteLine("The character you typed wasn't a number, so we set 3 routers to AS1.");
                as1Last = 2;
            }
            if (as1Last < 7)
            {
                as2First = as1Last + 1;
                if (as1Last > 0)
                {
                    Console.WriteLine("How many routers do you want in AS2? (1-" + (8 - as1Last) + "). Rest will be placed AS3.");
                }
                else
                {
                    Console.WriteLine("How many routers do you want in AS2? (1-8). Rest will be placed AS3.");
                }
                temp = Console.ReadLine();
                try
                {
                    as2Last = as1Last + int.Parse(temp);
                    if (as2Last <= as1Last)
                    {
                        Console.WriteLine("The character you typed wasn't in the given bounds, so we set 1 routers in the AS2.");
                        as2Last = as1Last + 1;
                    }
                    else if (as2Last > 8)
                    {
                        Console.WriteLine("The character you typed wasn't in the given bounds, so we set 1 router in the AS3 and rest in AS2.");
                        as2Last = 8;
                    }
                }
                catch
                {
                    Console.WriteLine("The character you typed wasn't a number, so we set 4 routers to AS2.");
                    as2Last = as1Last + 4;;
                }
                as3First = as2Last + 1;
            }
            else
            {
                Console.WriteLine("One router will be now placed in both remaining AS.");
                as2First = 8;
                as2Last  = as2First;
                as3First = 9;
            }


            for (int i = 0; i < 10; i++)
            {
                bgpListner[i] = new BGPListner();
                if (i < as2First)
                {
                    AS = GlobalVariables.AS1;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as1_IP_peifix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as1_IP_peifix + i, AS);
                }
                else if (i > as1Last && i < as3First)
                {
                    AS = GlobalVariables.AS2;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as2_IP_Prefix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as2_IP_Prefix + i, AS);
                }
                else if (i > as2First && i < 10)
                {
                    AS = GlobalVariables.AS3;
                    GlobalVariables.listnerConAnd_AS.TryAdd((ushort)i, AS);
                    bgpListner[i].BindListner(GlobalVariables.as3_IP_Prefix + i, GlobalVariables.listnerPortNumber, i);
                    GlobalVariables.listner_AS.TryAdd(GlobalVariables.as3_IP_Prefix + i, AS);
                }

                Thread.Sleep(500);
                //recient computers can handle 500 connections
            }
        }