public ServerConnection(FormGame client, TcpClient soc) { // Interface de jeux gameClient = client; // Socket vers le serveur socket = soc; // Délai d'inactivité socket.ReceiveTimeout = 1000; // Ouverture du flux stream = socket.GetStream(); }
private void BTN_Start_Click(object sender, EventArgs e) { try { // Ouverture d'un socket à l'adresse et port spécifiés Int32 port = int.Parse(TB_Port.Text); TcpClient socket = new TcpClient(); var result = socket.BeginConnect(TB_AdresseIP.Text, port, null, null); // Tentative de connexion pendant 1 seconde var success = result.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1)); // Le serveur n'a pas répondu if (!success) throw new Exception("Il n'y a pas de serveur disponible"); // On a trouvé un serveur, on démarre la partie FormGame game = new FormGame(); ServerConnection conn = new ServerConnection(game, socket); game.SetConnection(conn); // On démarre le thred d'écoute du serveur Thread serverThread = new Thread(conn.ListenToServer); serverThread.Start(); while (!serverThread.IsAlive); Thread.Sleep(1); // Affichage du jeu game.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }