示例#1
0
 public bool FindningInformationAboutPCInList(IPParameters recivedPC)
 {
     foreach (var PC in PCInNetwork)
     {
         if (PC?.ReturnIpAddress() != null && PC?.ReturnIpAddress() != recivedPC?.ReturnIpAddress())
         {
             return(true);
         }
     }
     return(false);
 }
示例#2
0
        public void ReciveBroadcastOffer(object available)
        {
            UdpClient  listener = new UdpClient(localPort);                 // для прослушивания сообщений udp приходящих на локальный порт
            IPEndPoint groupEP  = new IPEndPoint(IPAddress.Any, localPort); // адрес приема, для приема всех сообщений

            try
            {
                while (true)
                {
                    // Console.WriteLine("Waiting for broadcast");
                    byte[] bytes = listener.Receive(ref groupEP); // получаем сообщение

                    IPParameters recivedPC = new IPParameters();
                    var          name      = Encoding.ASCII.GetString(bytes, 0, bytes.Length);

                    recivedPC.SetNameInNetwork(name);
                    recivedPC.SetIpAddress(groupEP.Address);
                    recivedPC.SetBroadcastAddress(CurentPC.ReturnBroadcastAddress());
                    recivedPC.SetSubnetMask(CurentPC.ReturnSubnetMask());

                    if (!CurentPC.FindningInformationAboutPCInList(recivedPC))//Обрабатываем сообщения, принимаемые от этого же пк
                    {
                    }
                }


                AvailableConection availableConection = (AvailableConection)available;
                availableConection.AddMember(groupEP.Address, name);
            }
            catch (SocketException e)
            {
                Console.WriteLine(e);
            }
            finally
            {
                listener.Close();
            }
        }
示例#3
0
 public void AddingNewPCInList(IPParameters pc)
 {
     PCInNetwork.Add(pc);
 }