private void StreamReceived(IAsyncResult ar)//ceci { int bytesRead = 0; try //si pas de data à lire { lock (LeClient.GetStream()) //ep2 4:20 { bytesRead = LeClient.GetStream().EndRead(ar); } } catch (Exception ex) { //MessageBox.Show(ex.Message); } if (bytesRead == 0) { LeClient.Close();//Déconnection return; } byte[] data = new byte[bytesRead]; for (int i = 0; i < bytesRead; i++) { data[i] = ReadBuffer[i]; } ProcessData(data); LeClient.GetStream().BeginRead(ReadBuffer, 0, BufferSize, StreamReceived, null); }
protected override void Update(GameTime gameTime) { Window.ClientSizeChanged += new EventHandler <EventArgs>(Window_ClientSizeChanged); GérerClavier(); TempsÉcouléDepuisMAJ += (float)gameTime.ElapsedGameTime.TotalSeconds; if (TempsÉcouléDepuisMAJ >= INTERVALLE_MAJ_STANDARD) { if (ModeDeJeu == 1 && NbJoueurConnectés != 2) { CoursePeutCommencer = false; } CaméraJeu.CréerPointDeVue(); if (CourseActive && !ImageToucheActive && LaCourse != null) { Interface.CourseActive = true; GestionOrientationCaméra();//Si course est activée } TempsÉcouléDepuisMAJ = 0; } if (MenuActif && !ImageToucheActive && GestionInput.EstEnfoncée(Keys.G)) { MenuActif = false; ImageToucheActive = true; } if (ImageToucheActive && !CourseActive && GestionInput.EstEnfoncée(Keys.H) && CoursePeutCommencer) { ImageToucheActive = false; //Interface.CourseActive = true; CourseActive = true; Carte.CourseActive = true; foreach (Voiture x in ListeVoiture) { x.CourseActive = true; } foreach (Sol x in LaCourse.LaPiste) { x.CourseActive = true; } LaCourse.CourseActive = true; } if (ModeDeJeu == 1) { LeClient.EnvoiInfoDéplacement(IDVoitureUtilisateur); NbJoueurConnectés = LeClient.NbJoueursConnectés; Interface.NbJoueursConnectés = LeClient.NbJoueursConnectés; LaCourse.NbFranchis[1] = LeClient.NbFranchisAdversaire; } Window.Title = NbJoueurConnectés.ToString() + " - " + MenuActif.ToString(); //Window.Title = LaCourse.NbFranchis[0].ToString() + " - " + LaCourse.NbFranchis[1].ToString() + " - " + (LaPiste.Count() * NbTours * 2).ToString() + " - " + LaCourse.CourseTerminée.ToString(); base.Update(gameTime); }
public void SendData(byte[] b) { //Try to send the data. If an exception is thrown, disconnect the client try { lock (LeClient.GetStream()) { LeClient.GetStream().BeginWrite(b, 0, b.Length, null, null); } } catch (Exception e) { } }