/// <summary>
        /// Check the adapters to see if the adapter we are using has changed IP address.
        /// </summary>
        /// <param name="interfaces">An array of interfaces to check against.</param>
        public void RefreshAdapterAddress(NetworkInterface[] interfaces)
        {
            if (NetworkAdapter != null)
            {
                foreach (NetworkInterface @interface in interfaces)
                {
                    if (@interface.Description == NetworkAdapter.Description)
                    {
                        NetworkAdapter = @interface;
                        break;
                    }
                }

                var ipProps = NetworkAdapter.GetIPProperties();

                foreach (var ip in ipProps.UnicastAddresses)
                {
                    if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
                    {
                        if (AdapterIPAddress.Equals(ip.Address) == false)
                        {
                            HasAdapterChanged = true;
                        }

                        AdapterIPAddress = ip.Address;
                        break;
                    }
                }
            }
        }
 /// <summary>
 /// Get a regional string format for this connection (Don't use this string as a key).
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     return(string.Format(Strings.UdpConnectionInfo_StringFormat,
                          SendIPAddress.ToString(), SendPort,
                          AdapterIPAddress.ToString(), ReceivePort,
                          AdapterName
                          ));
 }