Bonjour,
je fais un jeu de combat naval en réseau.
Une fois que les joueurs ont placés leur bateaux, avant de lancer le jeu, chaque application envoie sa grille à l'autre.
Je procède comme ceci:
et je réceptionne de l'autre côté:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for (k=0;k<101;k++) { l=grid[k]; this.MyClient.Send(Encoding.Unicode.GetBytes(l.ToString())); System.Threading.Thread.Sleep(400); }
Donc 2 boucle qui envoient ou recoivent la grille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (this.num_transfert<101) { grid2[num_transfert]=Int32.Parse(this.recu.Text); num_transfert=num_transfert+1; }
J'utilise un sleep de 400 par mesure de sécurité pour ne pas aller trop vite et pour etre sur que l'application réceptrice ne plante pas en recevant plusieurs éléments à la fois,....
Tout marche très bien mais ce n'est pas très sur, et cela est très lent du à la sécurité (sleep de 400).
J'aimerais donc pouvoir faire un acquittement, l'application emetrice attendant le signal pour envoyer l'élément suivant.
Comment pourrais je faire?
je pense à ceci:
Une variable globale qui passe à 1 quand on a recu le signal, et qui repasse à 0 dès qu'on a envoyé un élément? signal envoyé donc par le récepteur apres chaque élément?
Merci de vos conseil et réponses.
Partager