Bastien35
Messages postés20Date d'inscriptionmercredi 28 mai 2003StatutMembreDernière intervention25 septembre 2007
-
31 août 2007 à 10:44
Bastien35
Messages postés20Date d'inscriptionmercredi 28 mai 2003StatutMembreDernière intervention25 septembre 2007
-
25 sept. 2007 à 11:07
Bonjour,
J'ai développé une application client/serveur basée sur les winsocks. Cette application permet l'envoi de message en interne. Actuellement, toutes les personnes connectées au serveur reçoivent les messages.
Dans un soucis d'amélioration, j'aimerais que l'on puisse prédéfinir une groupe de personnes auquel sera envoyer ces messages. Toutes personnes non membres de ce groupe ne recevra donc pas ces messages.
J'ai parcours plusieurs sites et forums, mais je n'ai rien trouvé de très concluant.
Si vous avez des suggestions, je suis prenneur.
Merci par avance pour vos réponses.
Bonne journée à tous.
A voir également:
Envoi de messages à un groupe d'utilisateur prédéfini
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 août 2007 à 12:48
Salut
Ta question relève surtout de l'organisaton de ton programme.
Est-ce que, côté serveur, tu identifies les clients qui sont connectés ? (par un login ou le nom de leur machine ou leur IP)
Si oui, tu n'as plus qu'à créer un groupe (une collection) qui liste les noms/login/IP des clients privilégiés. Quand tu as besoin d'envoyer un message aux personnes de ce groupe, tu vas rechercher leurs noms/login/IP dans ton groupe et tu envoies le message.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 14 sept. 2007 à 20:10
Re
Oui, en effet, j'avais répondu, mais à côté de la plaque : C'était du code VB6 qui utilise les index de composant, chose impossible en .Net.
Il te faut donc passer par une Classe qui renfermera une Collection des éléments dont tu as besoin pour t'organiser.
Mais le .Net, c'est pas ma tasse de thé, alors mes conseils s'arrêtent là, désolé.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 sept. 2007 à 19:59
Salut Bastien et désolé de ne pas avoir suivi cette conversation (je n'avais pas coché le "Envoyer un mail lorsque ...")
Le code que je t'avais proposé en VB6 a été supprimé définitivement, hélas.
Je vais donc tenter de te le reproduire :
Il te faut créer un groupe d'utilisateur :
Public Type typeGroupe
Pseudo As String
AdrIP As String
End Type
Public monGroupe(1 To 10) As typeGroupe
' Ce groupe acceptera 10 membres
A toi de voir quelle dimension doit avoir le tableau.
Dedans, tu rangeras les pseudos des gens appartenant à ce groupe et, à chaque connexion d'un client, tu testeras si ce Pseudo fait partie du groupe afin de renseigner AdrIP :
For r = 1 To UBound(monGroupe)
If LePseudoQuiVientDeSeLoguer = monGroupe(r).Pseudo Then
monGroupe(r).AdrIP = LeWinsockDuPseudo.RemoteHost
Exit For
End If
Next t
Si tu veux gérer plusieurs groupes, il faudra compliquer la chose en dimensionnant ton groupe avec 2 dimensions :
Public monGroupe(1 To 4, 0 To 10) As typeGroupe
en réservant la variable monGroupe(x, 0).Pseudo pour le nom du Groupe (exemple)
Ensuite, au moment d'expédier ton message aux membres du groupe :
For r = 1 To UBound(mesWinSocks)
If mesWinsocks(r).State = sckConnected Then
For t = 0 To UBound(monGroupe)
If mesWinsocks(r).RemoteHost = monGroupe(t).AdrIP Then
mesWinsocks(r).SendData "mon message"
DoEvents
Exit For
End If
Next t
End If
Next r
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Bastien35
Messages postés20Date d'inscriptionmercredi 28 mai 2003StatutMembreDernière intervention25 septembre 2007 2 sept. 2007 à 13:52
Bonjour,
Jack, merci pour ta réponse.
En effet, mes client sont identifiés par un user et mot de passe. Ces paramètres sont sauvegardés dans un fichier txt chargé au démarrage de mon application serveur.
Je comprends bien ta proposition mais je ne vois pas très bien comment la mettre en oeuvre...
Notament la notion de collection. En gros, j'aimerais que l'administrateur du serveur puisse créer un groupe (ex: secrétariat) et y ajoute des utilisateurs. Je vois bein les "forms", les conceptions, mais le code ??? et surtout celui lors de la procédure d'envoi...
Je peux mettre un partie de mon code à ta disposition (en plus, cela pourra surment m'être utile que quelqu'un de compétent y jet un coup d'oeil averti).
Merci par avance pour toutes vos réponses.
Bonne journée à tous.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bastien35
Messages postés20Date d'inscriptionmercredi 28 mai 2003StatutMembreDernière intervention25 septembre 2007 4 sept. 2007 à 17:38
Bonjour Jack,
Je n'arrive plus à retrouver la réponse que tu m'a faite après mon post du 02/09/2007 à 13:52:57!!!
Je l'ai pourtant lus hier soir ... Tu me parlais de tableau et tu m'avais écris des lignes de codes.
Pourrais-tu, s'il te plait, me renvoyer ta réponse.