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; } }
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"); } }
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); }
public void StartServer() { if (mServerState == ServerStates.ServerPaused || mServerState == ServerStates.ServerStopped) { mServerState = ServerStates.ServerRunning; Initialize(); } }
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; }
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> >(); } }
public void PauseServer() { if (mServerState == ServerStates.ServerPaused) { mServerState = ServerStates.ServerRunning; Initialize(); } else { mServerState = ServerStates.ServerPaused; if (mListenerSocket != null) { mListenerSocket.Close(); mListenerSocket = null; } } }
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) }
public void SwitchToGame(GameModeBase gameMode) { if(ServerState != ServerStates.InLobby) return; ServerState = ServerStates.InGame; SetGame(gameMode); foreach (var netConnection in lobby.clients) { gameMode.AddConnection(netConnection); } }
public void SwitchToLobby() { if (ServerState != ServerStates.InGame) return; ServerState = ServerStates.InLobby; }