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:
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);
}
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
 
if (this.num_transfert<101)
{
	grid2[num_transfert]=Int32.Parse(this.recu.Text);
	num_transfert=num_transfert+1;
}
Donc 2 boucle qui envoient ou recoivent la grille.

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.