private void InternalClientOnServerStateChanged(ServerStates serverState)
        {
            switch (serverState)
            {
            case ServerStates.Connected:
                HasConnection = true;
                if (_lostConnection)
                {
                    ///TBD
                }
                else if (this._settings.Autologin == true)
                {
                    this.Login();
                }
                _lostConnection = false;
                break;

            case ServerStates.ConnectionLost:
                HasConnection = false;
                changeServerStateStatus(EmailLoginStates.LoginOngoing);
                _lostConnection = true;
                break;

            case ServerStates.Disconnected:
                HasConnection = false;
                changeServerStateStatus(EmailLoginStates.LogoutComplete);
                _lostConnection = true;
                break;
            }
        }
Exemple #2
0
        public void GetServerState(TcpClient prmClient, string prmPacket)
        {
            Account account = prmClient.account;

            string[]   serverList = prmPacket.Substring(2).Split('|');
            GameServer server     = account.game.server;
            bool       firstTime  = true;

            foreach (string sv in serverList)
            {
                string[] separator = sv.Split(';');

                int          id          = int.Parse(separator[0]);
                ServerStates serverState = (ServerStates)byte.Parse(separator[1]);
                string       serverName  = account.accountConfig.server;

                // Add Method to take name with Id

                if (id == account.accountConfig.Get_Server_ID())
                {
                    server.RefreshData(id, serverName, serverState);
                    account.logger.log_informacion("LOGIN", $"Le serveur {serverName} est {account.game.server.GetState(serverState)}");

                    if (serverState != ServerStates.ONLINE)
                    {
                        firstTime = false;
                    }
                }
            }

            if (!firstTime && server.serverState == ServerStates.ONLINE)
            {
                prmClient.SendPacket("Ax");
            }
        }
Exemple #3
0
        public InitState Initialize()
        {
            if (mListenPort <= 0 || mListenPort >= 65536)
            {
                return(InitState.InvalidListenPort);
            }

            IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); //Dns.Resolve("localhost").AddressList[0];

            if (hostEntry.AddressList.Length <= 0)
            {
                return(InitState.ErrorNoAvailableIPAddress);
            }

            IPAddress localAddress = null;

            for (int i = 0; i < hostEntry.AddressList.Length; ++i)
            {
                if (hostEntry.AddressList[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    localAddress = hostEntry.AddressList[i];
                }
            }


            if (localAddress == null)
            {
                return(InitState.ErrorNoAvailableIPAddress);
            }

            try
            {
                //create a listening socket
                if (mListenerSocket == null)
                {
                    mListenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                }
                IPEndPoint localIP = new IPEndPoint(localAddress /*IPAddress.Any*/, mListenPort);
                mListenerSocket.Bind(localIP);
                mListenerSocket.Listen(50); //TODO -> ponder which is the best value to use here
                mListenerSocket.BeginAccept(new AsyncCallback(OnHandleClientConnection), null);
            }
            catch (SocketException ex)
            {
                System.Diagnostics.Debug.WriteLine("Unable to create the socket : " + ex.Message);
            }
            catch (ObjectDisposedException ex)
            {
                System.Diagnostics.Debug.WriteLine("The socket was forcefully closed : " + ex.Message);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }

            mServerState = ServerStates.ServerRunning;

            return(InitState.InitOK);
        }
Exemple #4
0
 public void StartServer()
 {
     if (mServerState == ServerStates.ServerPaused || mServerState == ServerStates.ServerStopped)
     {
         mServerState = ServerStates.ServerRunning;
         Initialize();
     }
 }
Exemple #5
0
 public GameServer(int port)
 {
     var configuration = new NetPeerConfiguration("HORSEGLUERTS");
     configuration.Port = port;
     sendBuffer = new List<byte>();
     server = new NetServer(configuration);
     ServerState = ServerStates.InLobby;
     gameMode = null;
     lobby = new Lobby(this);
 }
        public ServerReference()
        {
            ReferenceLastSeen = DateTime.MinValue;
            ReferenceFirstSeen = DateTime.MinValue;
            ReferencePing = -1;
            ReferencePingNote = String.Empty;

            TesterTimeout = 20;
            TesterState = String.Empty;
            ServerNote = String.Empty;

            ServerConnectedClients = 0;
            ServerPriority = 5;
            ServerState = ServerStates.Unknown;
        }
Exemple #7
0
        public void StopServer()
        {
            if (mServerState == ServerStates.ServerRunning || mServerState == ServerStates.ServerPaused)
            {
                mServerState = ServerStates.ServerStopped;
                if (mListenerSocket != null)
                {
                    mListenerSocket.Close();
                    mListenerSocket = null;
                }

                mClientDetailsGroups = null;
                mClientDetailsGroups = new Dictionary <string, Collection <ICollaborativeClientDetails> >();
            }
        }
Exemple #8
0
 public void PauseServer()
 {
     if (mServerState == ServerStates.ServerPaused)
     {
         mServerState = ServerStates.ServerRunning;
         Initialize();
     }
     else
     {
         mServerState = ServerStates.ServerPaused;
         if (mListenerSocket != null)
         {
             mListenerSocket.Close();
             mListenerSocket = null;
         }
     }
 }
Exemple #9
0
        private void InternalClientOnServerStateChanged(ServerStates serverState)
        {
            switch (serverState)
            {
            case ServerStates.Connected:
                HasConnection = true;
                if (_lostConnection)
                {
                }
                _lostConnection = false;
                break;

            case ServerStates.ConnectionLost:
                HasConnection   = false;
                _lostConnection = true;
                break;
            }
        }
        private void BtToStartToOrder_Click(object sender, RoutedEventArgs e)
        {
            ServerStates state = 0;



            if (ClientMaintaining.isSelfServer)
            {
                state = LeaderServer.Leader.ServerState;
            }
            else
            {
                if (LeaderServer.CurrentServer != null)
                {
                    state = LeaderServer.CurrentServer.ServerState;
                }
            }

            if (state == ServerStates.OrdersSet)
            {
                if (ClientMaintaining.isSelfServer)
                {
                    if (ServerStatus
                        .users.Count > 1 &&
                        ServerStatus
                        .users.Count(x => x.ID != ClientMaintaining.ID && x.Ready == false) > 0)
                    {
                        MessageBoxResult result = MessageBox.Show(
                            ClientUIPresenter.GetString("NotallusersarereadytocalculatetheirordersContinueforcibly")

                            , ClientUIPresenter.GetString("Question"), MessageBoxButton.YesNo);
                        if (result == MessageBoxResult.Yes)
                        {
                            btToStartToOrder.IsEnabled      = false;
                            LeaderServer.Leader.ServerState = ServerStates.ReadyToCalculate;
                        }
                    }
                    else
                    {
                        btToStartToOrder.IsEnabled      = false;
                        LeaderServer.Leader.ServerState = ServerStates.ReadyToCalculate;
                    }
                }
                else
                {
                    if (ClientMaintaining.ClientReadiness)
                    {
                        ClientMaintaining.ClientReadiness = false;
                        btToStartToOrder.Content          = ClientUIPresenter.GetString("Myorderisdone")
                        ;
                    }
                    else
                    {
                        ClientMaintaining.ClientReadiness = true;
                        btToStartToOrder.Content          = ClientUIPresenter.GetString("Changemyorder")
                        ;
                    }
                }
            }
            if (state == ServerStates.DelivererSet &&
                ClientMaintaining.isSelfServer
                //&& LeaderServer.Leader.ServerState == ServerStates.DelivererSet
                && CurrentDeliverer != null)
            {
                //btToStartToOrder.IsEnabled = false;
                ServerStatus.Current.ServerDeliverer = CurrentDeliverer;
                LeaderServer.Leader.ServerState      = ServerStates.OrdersSet;
            }
            //switch (LeaderServer.Leader.ServerState)
        }
Exemple #11
0
        public void SwitchToGame(GameModeBase gameMode)
        {
            if(ServerState != ServerStates.InLobby) return;
            ServerState = ServerStates.InGame;
            SetGame(gameMode);

            foreach (var netConnection in lobby.clients)
            {
                gameMode.AddConnection(netConnection);
            }
        }
Exemple #12
0
 public void SwitchToLobby()
 {
     if (ServerState != ServerStates.InGame) return;
     ServerState = ServerStates.InLobby;
 }