Ejemplo n.º 1
0
        public static object ReadAndDeserialize(NetworkStream ns)
        {
            IFormatter formatter = new BinaryFormatter();

            try
            {
                return(formatter.Deserialize(ns));
            }
            catch (Exception e)
            {
                LogConsole.Log(e.Message);
            }
            return(null);
        }
Ejemplo n.º 2
0
 public void AjoutJoueur(TcpClient client)
 {
     if (ConnUtility.TestClient(Joueur1))
     {
         Joueur2            = client;
         IsWaitingForPlayer = false;
         jeu = new Thread(StartGame);
         jeu.Start();
     }
     else
     {
         LogConsole.LogWithTime("La connection à " + ConnUtility.GetIP(Joueur1) + " à été terminer");
         Joueur1 = client;
     }
 }
Ejemplo n.º 3
0
        private void StartGame()
        {
            NetworkStream StreamJ1 = Joueur1.GetStream();
            NetworkStream StreamJ2 = Joueur2.GetStream();

            PosShips GrilleJ1;
            PosShips GrilleJ2;


            LogConsole.Log("Début Partie");

            ConnUtility.SerializeAndSend(StreamJ1, "Start");
            ConnUtility.SerializeAndSend(StreamJ2, "Start");

            StreamJ1.ReadTimeout = StreamJ2.ReadTimeout = 60000;
            try
            {
                LogConsole.Log("Lecture 1 ");
                GrilleJ1 = (PosShips)ConnUtility.ReadAndDeserialize(StreamJ1);
                LogConsole.Log("Lecture 2 ");
                GrilleJ2 = (PosShips)ConnUtility.ReadAndDeserialize(StreamJ2);
                LogConsole.Log("Tentative Lecture");
                LogConsole.Log(GrilleJ1.PPorteAvion.ToString());
                LogConsole.Log(GrilleJ2.PPorteAvion.ToString());
            }
            catch (Exception e)
            {
                LogConsole.Log("Erreur réception grille Erreur: " + e.Message);
            }



            /*recevoir tableau*/

            /*partir boucle Joueur1*/
            //jeu.Abort();
            while (true)
            {
                Thread.Sleep(500);
            }

            MatchMakingServeur.GameInstances.Remove(this);
        }
        public void ListenServeur()
        {
            Stop = false;
            //TcpListener serverSocket = new TcpListener(8888);
            TcpListener serverSocket = new TcpListener(IPAddress.Any, 8080);

            try
            {
                serverSocket.Server.ReceiveTimeout = 500;
                serverSocket.Start();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


            //TcpClient clientSocket = default(TcpClient);


            LogConsole.LogWithTime("Serveur à démarrer");
            while (!Stop)
            {
                if (serverSocket.Pending())
                {
                    TcpClient clientSocket = serverSocket.AcceptTcpClient();

                    LogConsole.LogWithTime("Nouvelle connection de " + ConnUtility.GetIP(clientSocket) /* IPAddress.Parse(((IPEndPoint)clientSocket.Client.RemoteEndPoint).Address.ToString())*/);
                    Lock.WaitOne();
                    if (CheckExistingInstances(clientSocket))
                    {
                        GameInstances.Add(new GameInstance(clientSocket));
                    }
                    Lock.ReleaseMutex();
                }
            }
            LogConsole.LogWithTime("Serveur s'est arrêter");
            serverSocket.Stop();
        }