public static object ReadAndDeserialize(NetworkStream ns) { IFormatter formatter = new BinaryFormatter(); try { return(formatter.Deserialize(ns)); } catch (Exception e) { LogConsole.Log(e.Message); } return(null); }
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; } }
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(); }