private void QueryForServerList()
        {
            this.Cursor = Cursors.WaitCursor;

            try
            {
                // Define the unique identifier for our service
                Guid serviceId = new Guid(BroadcastServer.serviceIdString);

                // Scan the network for services
                BroadcastClient.ServerResponse[] responses =
                    BroadcastClient.FindServer(serviceId, IPAddress.Parse(Ip), Port, Timeout);

                foreach (BroadcastClient.ServerResponse response in responses)
                {
                    XmlSerializer xmlSerializer = new XmlSerializer(typeof(ServerConfig));
                    StringReader  reader        = new StringReader(response.Message);

                    try
                    {
                        ServerConfig serverList = xmlSerializer.Deserialize(reader) as ServerConfig;

                        foreach (ServerType sct in serverList.)
                        {
                            String[] v = new string[4] {
                                sct.DisplayName,
                                sct.HostName,
                                sct.Port.ToString(),
                                Dns.GetHostEntry(response.IPAddress).HostName
                            };
                            AvailableServersView.Items.Add(new ListViewItem(v));

                            EnableDisable();
                            Refresh();
                        }
                    }
                    catch (Exception ex)
                    {
                        throw (new ConfigurationErrorsException(
                                   String.Format("Problems reading the message from source {0}.\nMessage = {1}.", response.IPAddress, response.Message), ex));
                    }
                }

                Refresh();

                if (responses.Length <= 0)
                {
                    MessageBox.Show("Configuration information was not available, no broadcast server replied.",
                                    "Failure", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }