Beispiel #1
0
        public NetworkPlayerController(NetworkServiceHost networkServiceHost)
        {
            NetworkServiceHost = networkServiceHost;
            Client             = NetworkServiceClient.Channel();

            /** Quand notre service reçoit le mouvement du joueur graphique de l'autre jeu dans ce cas,
             *  on l'envoie comme notre mouvment étant donné qu'on représente ce joueur dans notre partie
             */
            networkServiceHost.NetworkGameService.MoveReceived += NetworkGameServiceOnMoveReceived;
        }
        private void ButtonJoin_OnClick(object sender, RoutedEventArgs e)
        {
            if (ComboBoxIP.SelectedItem == null ||
                TextBoxGameName.Text == "" ||
                TextBoxPort.Text == "" ||
                TextBoxPseudo.Text == "" ||
                TextBoxHostIP.Text == "" ||
                TextBoxHostPort.Text == "" ||
                TextBoxHostPseudo.Text == "")
            {
                _mainWindow.ShowMessageAsync("Paramètres incorrects", "Veuillez remplir tout les champs");
                return;
            }


            //Création du service
            Uri uri =
                new Uri("net.tcp://" + ComboBoxIP.SelectedItem + ":" + TextBoxPort.Text + "/" + TextBoxGameName.Text +
                        TextBoxPseudo.Text);

            NetworkServiceHost.Create(uri);
            NetworkServiceHost.Open();

            //On créer le client et on informe l'autre service de l'adresse de notre service
            Uri hostUri =
                new Uri("net.tcp://" + TextBoxHostIP.Text + ":" + TextBoxHostPort.Text + "/" + TextBoxGameName.Text +
                        TextBoxHostPseudo.Text);
            EndpointAddress endpointAddress = new EndpointAddress(hostUri);

            NetworkServiceClient.Create(endpointAddress);
            try
            {
                NetworkServiceClient.Channel().SendClientAdress(uri.ToString());
            }
            catch (Exception)
            {
                _mainWindow.ShowMessageAsync("Erreur réseau",
                                             "Il y a eu un problème lors de la connexion avec l\'autre joueur, cela peut provenir des paramètres que vous avez saisis.");
                return;
            }

            Color distantPlayerColor = NetworkServiceClient.Channel().GetColor() == "White" ? Color.White : Color.Black;
            Color color = distantPlayerColor == Color.White ? Color.Black : Color.White;

            NetworkServiceHost.GetService().PlayerColor = color;

            GameFactory gameFactory = new GameFactory();
            BoardView   boardView   = new BoardView(_container);

            Core.Game game = gameFactory.CreateGame(Mode.Network, _container, boardView, color, null);
            _mainWindow.MainControl.Content = new GameView(_mainWindow, game, boardView);
        }
Beispiel #3
0
        private bool Ping()
        {
            string testMessage = "42";

            NetworkServiceClient.Channel().Echo(testMessage);
            try
            {
                string received = NetworkServiceClient.Channel().Echo(testMessage);
                if (received != testMessage)
                {
                    NetworkServiceHost.Close();
                    return(false);
                }
                return(true);
            }
            catch (Exception)
            {
                NetworkServiceHost.Close();
                return(false);
            }
        }