hurt14
Messages postés33Date d'inscriptionvendredi 2 janvier 2004StatutMembreDernière intervention11 août 2006
-
21 févr. 2006 à 12:40
thebrainwasher
Messages postés20Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention18 août 2007
-
25 févr. 2006 à 14:24
Salut,
j'ai un problème avec mon application de chat multi clients. Quand j'envoie un message depuis le server seulement un des deux clients
reçoit ce message et ensuite quand je déconnecte le deuxième client (celui qui reçoit les messages du server) le premier client reçoit les deux fois le message, je comprends pas.
En effet j'essaie de faire un loop (for) pour que le server envoie le message tappé à travers tous les winsock connectés.
Voici la création dynamique de mes objets winsock: (dans frmServer, la form principale)
------------------------------------------------------------------------------------------------------------------------------------
Private Sub wckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
'Layout
frmChat.Caption = "Connected as Server"
frmChat.txtChat.Text = frmChat.txtChat & "********************* Connected with Client *********************" & vbCrLf
frmChat.lblAwaiting.Visible = False
End Sub
------------------------------------------------------------------------------------------------------------------------------------
Et ce qui suit: la procédure lorque l'on clique sur le bouton SEND (envoyer le message), ceci ce trouve sur une autre Form que les winsocks ! se trouve sur frmChat
------------------------------------------------------------------------------------------------------------------------------------
Private Sub btnSend_Click()
Dim message As String
message = txtMessage.Text
'Add the message to the listbox
txtChat.Text = txtChat.Text & "Server says: " & message & vbCrLf
'Clear Textbox
txtMessage.Text = ""
'Send the message to the clients
Dim Index As Integer 'Index est la variable pour identifier les différents winsocks crées ou existant dans frmServer
Index = 0
For Index= 0 to nbClients 'nbClients et la variable de frmServer qui s'incrémente à chaque fois qu'une requête de connection est faite
frmServer.wckServer(Index).SendData message
Index = Index + 1
Next Index
End Sub
------------------------------------------------------------------------------------------------------------------------------------
Et ça ça ne marche pas... Pourrez-vous m'aider, merci.
Hurt 14
thebrainwasher
Messages postés20Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention18 août 2007 25 févr. 2006 à 14:24
je
crois deja qu'il y a un probleme dans ces lignes, si tu a mis ca dans
ton code c'est normal, il ne faut pas que tu réincrémente la variable
Index puisque c'est deja une boucle For qui l'incrémente toute seule.
For Index= 0 to nbClients 'nbClients et la variable de frmServer qui s'incrémente à chaque fois qu'une requête de connection est faite
frmServer.wckServer(Index).SendData message
Index = Index + 1 ' !!!
Next Index
Ca ne vient peut etre pas que de là je ne connais pas tout ton probleme mais change deja cette ligne voila.