-------------------------------
Réponse au message :
-------------------------------
Salut Seb,
Merci pour ton aide, depuis mon message j'ai pas mal avancé et du coup j'ai trouvé une solution.
En fait je me sert d'un winsock indexé, un tableau de connection...
L'avantage c'est qu'il peut y avoir autant de connecté qu'on veut (façon de parler...) et ça évite de bordéliser le serveur.
J'ai presque fini, j'ajoute juste quelques petites fonctions sympas (qque trucs vicieux...).
Si tu veut je t'envoie les sources quand j'ai fini.
On pourrait collaborer à des améliorations.
Sur ce bon cours d'anglais !
-------------------------------
Réponse au message :
-------------------------------
Salut MrSchmit !
Je me suis confronté au même problême, car je voulais faire un petit programme de chat type irc pour discuter avec des potes de ma classe. En effet, on avait cours d'anglais sur des ordinateurs mis en réseau, et il fallait bien faire autre chose... :-)
En fait, ce qu'il faut, c'est diposer plusieurs contôles winsock (commences avec 3) sur la feuille du serveur.
par contre, pour les clients, 1 seul est necessaire.
pour le serveur, tu mets 4 textbox, un pour l'ip et 3 pour le differents ports, 3 command (servir1, servir 2, servir 3)
pour les client, 1 textbox pour l'ip du serveur, et 1 textbox pour le numero du port.
(naturellement, il faudra 2 autre textbox, le principal pour voir tout les message, et un autre pour ecrire)
Effectivement, il te faut choisir 3 ports différents.
Après, c'est assez simple, il faut juste configurer le serveur pour envoyer les messages qu'il reçoit d'un client aux autres clients.
tu auras donc pour le serveur 3 controles : winsock1, winsock2 et winsock3, ce qui te permet de faire un chat avec 4 personnes différentes. (3 clients + 1 serveur)
la programmation des clients est exactement la même que lorsqu'il n'y a que 2 machines connectés, par contre le serveur doit gérer les 3 clients.
Si le client 1 envoit un message au serveur, on aura, dans le code de la feuille du serveur :
private sub winsock1_receive(ReceiveData as String)
txtMessage = txtMessage & ReceiveData & vbcrlf 'affiche le message au serveur
winsock2.send = ReceiveData 'on envoit aux autres clients
winsock3.send = ReceiveData
end sub
a noter, que "winsock" peut-être remplacer par d'autre contrôle (dsocket1,wsock1...) et vbcrlf permet d'aller à la ligne si tu mets "multiligne = true" pour le textbox principal txtMessage
tu fais 3 sub comme ça et les 4 ordis peuvent voir ce que chacun écrit.
Si c'est le serveur qui envoit le message, c'est plus simple, il l'envoit en même temps au 3 clients.
tu inventes une procedure que tu peux rappeller
private sub sendproc ()
paquet = (message à envoyer )
winsock1.send = paquet
winsock2.send = paquet
winsock3.send = paquet
end sub
si tu veux rajouter des clients, rien ne te l'empêche.
voila, c'est un bon exercice, et ça marche très bien !