public bool FindningInformationAboutPCInList(IPParameters recivedPC) { foreach (var PC in PCInNetwork) { if (PC?.ReturnIpAddress() != null && PC?.ReturnIpAddress() != recivedPC?.ReturnIpAddress()) { return(true); } } return(false); }
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(); } }
public void AddingNewPCInList(IPParameters pc) { PCInNetwork.Add(pc); }