Ejemplo n.º 1
0
        private bool SearchForRootServer()
        {
            int i = 0;

            while (i < AllServers.Count)
            {
                try
                {
                    Console.WriteLine("Trying to connect to: " + AllServers[i]);
                    ss = (IServerServices)Activator.GetObject(typeof(IServerServices), AllServers[i] + "MyRemoteObjectName");
                    if (ss.isRoot() == true)
                    {
                        Console.WriteLine("Connected to :" + AllServers[i]);
                        RootServer = AllServers[i];

                        Console.WriteLine(RootServer + " is the ROOT Server");
                        RemotingServices.Marshal(cs, "MyRemoteObjectName", typeof(ClientServices));
                        //new Thread(() => PingLoop()).Start();
                        //STATE_CLIENT = STATE_CLIENT_COMMAND_INTERPRETATION;
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Connected to :" + AllServers[i]);
                        Console.WriteLine(AllServers[i] + "is NOT the ROOT Server");
                    }
                }
                catch (System.Net.Sockets.SocketException e)
                {
                    Console.WriteLine("The server: " + AllServers[i] + " is not available");
                }

                i = (i + 1) % AllServers.Count;
                if (i == 0)
                {
                    return(false);
                }
            }
            return(true);
        }