System.IO.BACnet.BacnetIpUdpProtocolTransport._GetBroadcastAddress C# (CSharp) Méthode

_GetBroadcastAddress() protected méthode

protected _GetBroadcastAddress ( ) : BacnetAddress
Résultat BacnetAddress
        protected virtual BacnetAddress _GetBroadcastAddress()
        {
            // general broadcast
            System.Net.IPEndPoint ep = new Net.IPEndPoint(System.Net.IPAddress.Parse("255.255.255.255"), m_port);
            // restricted local broadcast (directed ... routable)
            foreach (System.Net.NetworkInformation.NetworkInterface adapter in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
                foreach (System.Net.NetworkInformation.UnicastIPAddressInformation ip in adapter.GetIPProperties().UnicastAddresses)
                   if (LocalEndPoint.Address.Equals(ip.Address))
                   {
                       try
                       {
                           string[] strCurrentIP = ip.Address.ToString().Split('.');
                           string[] strIPNetMask = ip.IPv4Mask.ToString().Split('.');
                           StringBuilder BroadcastStr = new StringBuilder();
                           for (int i = 0; i < 4; i++)
                           {
                               BroadcastStr.Append(((byte)(int.Parse(strCurrentIP[i]) | ~int.Parse(strIPNetMask[i]))).ToString());
                               if (i != 3) BroadcastStr.Append('.');
                           }
                           ep = new Net.IPEndPoint(System.Net.IPAddress.Parse(BroadcastStr.ToString()), m_port);
                       }
                       catch { }  //On mono IPv4Mask feature not implemented
                   }
            BacnetAddress broadcast;
            Convert(ep, out broadcast);
            broadcast.net = 0xFFFF;
            return broadcast;
        }