Winsock et multiconnexions

Résolu
cs_Unreal Messages postés 89 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 26 mars 2006 - 25 mars 2006 à 15:04
cs_Unreal Messages postés 89 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 26 mars 2006 - 25 mars 2006 à 18:44
Bonjour
j'ai commencé a développer un peti jeu en réseau mais j'ai un petit problème: je ne peux pas envoyer les données a tous les joueurs en même temps(même s'ils utilisent des ports tous differents)
donc j'envoie aux joueurs un par un:

Sub EnvATous(AEnvoyer)
For i = 0 To 9
If UTILIZ(i) = True Then
RSU(i) = False: wsj(i).SendData CStr(AEnvoyer)
Do While RSU(i) = False
DoEvents
'Boucle d'attente de reponce
Loop
End If
Next i
End Sub
'Rsu(i) passe a true quand wsj(i) a fini d'envoyer (sendcomplete)
'Pour utiliz, c'est pour savoir si il y a un joueur sur ce winsock

ça marche, mais cela fait beaucoup ramer le jeu: les pings de chaque joueurs s'accumulent (si il y a 5 joueurs avec un ping de 200, ça fait 1 sec d'attente entre chaque message :s) donc le jeu devient injouable.
est-ce que quelqu'un aurait une autre solution?
merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 mars 2006 à 17:40
Salut
A mon avis, pas la peine d'attendre le SendComplete, il faut faire confiance au Winsock.
Par contre, il faut que le reste de ton programme lui en laisse le temps et qu'il y a quelque part dans ton application, au moins un DoEvents, sinon les Winsock ne pourront pas travailler..

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_Unreal Messages postés 89 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 26 mars 2006
25 mars 2006 à 18:44
j'avais deja fait pleins de test plus farfelu les uns que les autres, mais j'avais jamais essayé de mettre un doevents entre chaque senddata :)
ça marche tres bien, merci!
0
Rejoignez-nous