-
Client / Serveur ?
Salut tout le monde,
J'ai fait une application Client/Serveur en utilisant les composant TServerSocket et TClientSocket; je sauvegarde dans une structure au niveau du serveur la liste des clients connectés.
Je voudrais avoir la liste des clients connecté en temps réel mais le problème est que: quand un client se déconnecte, je n'arrive pas à identifier, le quel c'est.
Est-ce que quelqu'un peut m'aider?
Merci.
-
Salut!!!
Je sais pas si ce que je vais te dire est bon.. mais entk.. ca vaut la peine d'essayer!!
dans l'évènement OnClientDisconnect met :
Code:
Client_ip = Socket->RemoteAddress
Si ca marche redonne moi du feedback stp!!
Bonne chance!
-
Ce que te propose AlDum devrait marcher...
Sinon tu peux aussi tester l'état de tes clients avec la pté Active
-
Salut,
Alors, pour la solution qui consiste à récupérer l'adresse de la machine en profitant de l'évènement OnClientDisconnect j'avais déjà essayé. Mais le problème est que pour une même adresse peut correspondre plusieurs clients la seul chose qui puise les différencier (à ma connaissance) c'est la socket mais je ne sais pas comment faire pour récupérer le numéro de la socket du client qui se déconnecte.
Mais pour la solution qui consiste à utiliser la propriété Active, je ne vois vraiment pas comment l'utiliser?
Merci encore et je reste ouvert à toutes autres propositions.
-
j utilise pour ma part un methode un peu lourde mais ca fonctionne !
avec un timer chaque X secondes le client envoi une chaine comme signe de presence , une fois recu par le server il mets un valeur a Y qui est decrementée par un timer aussi , donc si apres X seconde le serveur ne recoit rien le client est consideré comme deconnecté ....
@+
-
la pté Active passe à false à la déconnection...
Qu'appeles tu par "le numéro de la socket du client" ?
-
utilise le composant serveur en mode bloquant
à chaque fois qu'un client se connecte respectivement se déconnecte un threas se crée ou se détruit pas client
évenement OnthreadStart OnThreadEnd
cordialement
-
L'évènement EndThread!!!
Salut tout le monde,
J'ai essayé la dernière solution proposée, mais avant j'ai voulu voir exactement ou l'évènement EndThread est déclenché. Mais apparemment quand le client est déconnecté cet événement n'est pas déclenché!!!
A l'exécution je vois que les évènements GetThread, et StartThread sont déclenché mais je ne vois pas l'évènement EndThread à la déconnexion!!!!
merci :ave:
-
place la déconnection du client dans la boucle du thread
prodécure ClientExecute
quant le threas se termine
ce la signifie la déconnection du client
-
On fait comment tout ça??? :oops: :?:
-
tu trouveras à cette adresse une exmple en delphi
tu peux aisémment l'adatpter pour c++ builder
http://www.duketown.com/marcel/server.shtml
Cordialenment
-
Hey cool... je me cherchait justement des exemples la dessus!!!
Merci DjmSoftware!!!