[Chat MultiConnections] Envoyer à tous?

cs_arthurm Messages postés 4 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 17 avril 2008 - 16 avril 2008 à 17:58
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 18 avril 2008 à 08:58
Bonjour!

Je développe un chat multiconnections comme IRC

Et j'aimerai savoir quand le serveur reçoit le message comment peut il l'envoyer à tous les autres index Winsock?

Ex:

Winsock1(0) est le serveur
Winsock1(1) est connecté
Winsock1(2) est connecté
Winsock1(3) est connecté

Comment faire pour que quand Winsock1(1) envoi un message sa l'envoi à Winsock1(2) et Winsock1(3)?

Merci!

7 réponses

DblK Messages postés 51 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 2 octobre 2008
16 avril 2008 à 18:59
Bonjour,

Il serait plus pratique de faire passer le message pas Wisnock1(0) entre Winsock1(1) et Winsock1(2).
Ainsi Winsock1(0) pourra aussi l'envoyer à Winsock1(3).

DblK
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 avril 2008 à 12:37
Bonjour

Ou sinon, avec un bête for :

For i= 1 to 3 'Voir pour les bornes par variable
    if I<>MsgSender Then 'MsgSender contient l'Index de l'emmeteur du message.
       'Envoyer
    end if
Next I

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_arthurm Messages postés 4 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 17 avril 2008
17 avril 2008 à 14:02
Bonjour NHenry!

Pourriez-vous m'envoyer une source de démo? Et m'aider ...

Que doit je mettre a "'Envoyer'" j'ai essayé Winsock1(I).SendData (Messages)

Mais cela m'envoi 3 fois le message :O

Merci !
0
cs_arthurm Messages postés 4 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 17 avril 2008
17 avril 2008 à 14:03
Ah et j'oubliait sa ne m'envoie pas le message aux autres clients
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
17 avril 2008 à 15:09
Bonjour

Peux-tu mettre tout le code de la boucle ?

Comment tu as déclarer "I" ?

For i= 1 to 3 'Voir pour les bornes par variable
    if I<>MsgSender Then 'MsgSender contient l'Index de l'emmeteur du message.
       'Envoyer
       DoEvents 'Oublié, indispensable pour envoyer.
    end if
Next I

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
cs_arthurm Messages postés 4 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 17 avril 2008
17 avril 2008 à 16:47
Voila mon code :
' Declare Variables
Option Explicit
Public Online As Integer
Dim I As Integer

Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
' Declare Variables
Dim Messages As String
' Get Message
Winsock1(Online).GetData Messages, vbString
LogArea.Text = LogArea.Text & Winsock1(0).RemoteHostIP & ": " & Messages & vbCrLf
' Test
For I = 1 To 1000
If I <> Online Then
Winsock1(Online).SendData (Messages)
DoEvents
End If
Next I
End Sub
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
18 avril 2008 à 08:58
Bonjour

For I = 1 To 1000
    If I <> Online Then
        Winsock1(Online).SendData (Messages)
        DoEvents
    End If
Next I


Pourquoi 1000 ? Utilises plutot un compteur auto incrémenté lors de création des controles WinWock.
N'utilises pas OnLine, mais Index

Voici le code corrigé :

For I = 1 To 1000

    If I <> Index Then

        Winsock1(I).SendData (Messages)

        DoEvents

    End If

Next I



Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
Rejoignez-nous