Rattacher un pseudo à une IP

Résolu
CsM Skate Messages postés 60 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 20 mai 2007 - 20 mars 2006 à 22:19
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 mars 2006 à 21:56
Bonjour à tous,
voilà, j'ai un prog (équivalent à un chat multiconnexions). Lorsque les messages arrivent, ils sont affichés. Mais impossible de gèrer un pseudo par ip de client. L'idéal serait de pouvoir au moment d'afficher le message chercher si un pseudo correspond à l'ip du message, et dans ce cas l'afficher au lieu de l'ip.
Merci (Base de mon prog trouvé sur ce site même)
Ce bout de code peut peut-être vous mettre sur la voie :

Private Sub Cl_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim DAs As String 'variable qui va recupere les donnes
Me.Cl(Index).GetData DAs, vbString 'recuperation

Select Case Left(DAs, 4)

Case "MSG:"
DAs = Right(DAs, Len(DAs) - 4)
'ici on ne va qu'afficher les donnes, donc si ya pas de retour chariot on en met un (c plus joli)
If Right(DAs, 2) <> vbCrLf Then DAs = DAs + vbCrLf
'devant on met [:] histoire de differencier les messages
DAs = "[" + Me.Cl(Index).RemoteHostIP + ":" + CStr(Index) + "] " + DAs
'on affiche
Me.Text1.Text = Me.Text1.Text + DAs

Dim e As Integer 'boucle qui envoie le nouveau message à tous les clients
e = 0
For e = 0 To Me.Cl.Count - 1
If Me.Cl(e).State = 7 Then
Me.Cl(e).SendData "MSG:" & DAs
DoEvents
End If
Next e

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 mars 2006 à 21:41
salut CsM Skate,

rhalalala, tu vas avoir des soucis, ton dataarrival est faux....



bref, pour le pseudo, c'est à moitié simple.

en fait, je suppose que tu charges dynamiquement tes CL.

donc lors de la connection client, à toi de voir si les pseudos sont authentifiées, etc....

je pars du principe que lors de l'acceptation, tu connais le pseudo et qu'il est autorisé.

dans ce connect, il te suffit alors d'attacher ton pseudo au socket
lui-même, puisqu'un seul pseudo par socket (toujours si dynamique).

comment? grâce au TAG.

donc au connect ... cl(index).tag = LePseudoVerifieDansLaBaseOuFourniEnParametre



et ensuite tu n'as plus qu'à relire ce tag (c'est un Variant).



pour dataarrival faux, les paquets sont de tailles aléatoires.

tu peux donc très bien recevoir un message de 3 caractères alors qu'il a envoyé une phrase longue.

il faut utiliser un tampon static et un séparateur "secret"

++

PCPT [AFCK]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 mars 2006 à 21:56
pour l'ini, tout dépend si tes chargements sont dynamiques. si c'est le
cas, tu peux avoir des inversions de pseudos selon leur ordre de
connection/déconnection.



pour le buffer, c'est même capital. on y pense pas forcément parce que
les tests sont en local ou en LAN. c'est surtout en WAN que le problème
survient.



@+
3
mongol77 Messages postés 75 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 24 juin 2007
20 mars 2006 à 22:34
ben je suis pas un pro de la prog , mais je pense que tu peut facilement créer un tableau avec tout les ip de tes clients et leurs noms associés
et dans le "on connection request" , faire une sorte de protocole qui va demander le nom de ton client
0
CsM Skate Messages postés 60 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 20 mai 2007
20 mars 2006 à 22:46
Justement, avez-vous un petit bout de code "type" à me communiquer ? Je galère sur les tableaux ... Merci d'avance
0

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

Posez votre question
mongol77 Messages postés 75 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 24 juin 2007
20 mars 2006 à 22:59
tu peut déclarer 2 tableaux genre :

dim tabip(0) as string
dim tabnom ( 0) as string

dans le "form load" tu peut le redim et mettre tom ip et ton pseudo

dans le "on connection request" tu demande au client de t'envoyer son nom et tu redim le tableau avec son nom et son ip
0
mongol77 Messages postés 75 Date d'inscription dimanche 2 octobre 2005 Statut Membre Dernière intervention 24 juin 2007
20 mars 2006 à 23:15
S'il vout plait ! une touche EDIT !!!


je vais me pieuter , donc si quelqu'un de plus expérimenté que moi veut l'aider ... merci pour lui.tcho les gens
0
CsM Skate Messages postés 60 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 20 mai 2007
20 mars 2006 à 23:19
Merci déjà à toi, tu m'a mis sur la voie, mais il me reste pas mal d'intérrogations, étant donné que je n'ai jamais eu à m'en servir ...
Comment les 2 tableaux vont-ils être utlisés en parallèle ?
0
CsM Skate Messages postés 60 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 20 mai 2007
21 mars 2006 à 20:54
Personne ne peut me donner plus de détails ?
0
CsM Skate Messages postés 60 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 20 mai 2007
22 mars 2006 à 21:50
Merci de ta réponse, en fait j'ai trouvé une solution qui marche plutôt pas mal. C'est bricolage, mais j'utilise un fichier ini. En gros je stoque l'index du socket, et je lui rattache son pseudo.
Pour ce qui est du séparateur, j'utilise cette technique, mais je ne l'ai pas implentée par pure flème ...
C'est vraiment important ? Je n'ai jamais eu de problème.
0
Rejoignez-nous