Envoi des donné a tous les connecté

Guillamue06 Messages postés 158 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 - 17 juin 2007 à 16:39
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 17 juin 2007 à 19:34
Bonjour a tous, je cherche un moyen d'envoyer des données textes a tous les cliens connecté au serveur.
Car quand j'envoi une donné texte au serveur celui-ci la renvoi seulement a selui qu'il la envoyer.

Enfet c'est pour un tchat :

Tous les cliens se connect au serveur (sa sa fonctionne)
Quand un clien envoi le méssage , le méssage est envoyer au serveur,
Le serveur renvoi le méssage a tous les cliens .

Mais voila moi il le renvoi seulement a celui qui c'est connecté



Source Serveur :
-----------------------------------------------
Option Explicit
Const NBRE_MAXCONN = 10
Dim mClients As New Collection




Private Sub Command1_Click()
End
End Sub


Private Sub Form_Load()
sck.LocalPort = 2468
sck.Listen
End Sub


Private Sub sck_ConnectionRequest(ByVal requestID As Long)
   Dim c As frmConnect
   Dim i As Long
  
   For i = 1 To mClients.Count
     
       If (mClients(i).sck.State = sckClosed) Then
           mClients(i).sck.Accept requestID
           Exit Sub
       End If
   Next
  
 
   If (mClients.Count >= NBRE_MAXCONN) Then Exit Sub
  
   Set c = New frmConnect
   c.sck.Accept requestID
   frmMain.List1.AddItem sck.RemoteHostIP
   mClients.Add c
End Sub


Private Sub sck_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
   On Error GoTo 0
   sck.Close
   sck.Listen
End Sub
Private Sub sck_Close()
   sck.Close
End Sub

Dans l'otre Form (la ou les donnée sont réceptionné (frmconnect) ) :
-----------------------------------------------------------------------

Dim mClients As New Collection   'Collection regroupant les connexions en cours
Option Explicit


Private Sub Form_Load()


End Sub


Private Sub sck_DataArrival(ByVal bytesTotal As Long)
Dim recu As String
sck.GetData recu


frmMain.Text1.Text = frmMain.Text1.Text & vbCrLf & recu
  
  sck.SendData recu
End Sub


 

1 réponse

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
17 juin 2007 à 19:34
Salut
Bah suffit de l'envoyer à tout le monde, où est la difficulté ?
Quand tu veux envoyer un texte à tout le monde, suffit de ... l'envoyer à tout le monde :
   For i = 1 To mClients.Count
       If mClients(i).sck.State = sckConnected Then
           mClients(i).SendData "Salut les potes"
       End If
   Next

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