IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Serversocket Savoir quel client vient de se déconnecter en temps réel ?


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 159
    Points : 37
    Points
    37
    Par défaut Serversocket Savoir quel client vient de se déconnecter en temps réel ?
    mon problème c que des fois l'un ou plusieurs clients sont obliger a redemandé leurs pc sans fermé l'application ,,et le serveur doit savoir a l'instant même quel est le client qui vient de ce déconnecté,

    j'ai essayé de faire par élimination avec la boucle

    for i := 0 to Serversocket1.Socket.ActiveConnections-1 do

    en testant tout les clients Active ça marche mais j'ai une perte de presque une seconde

    est ce que on peut savoir qui vient de ce déconnecté en temps réel ?

    j'ai une marge de temps très réduit

    je suis sur delphi 7 j' utilise les composant ServerSocket et ClientSocket

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    tout dépend de l'infrastructure, sur un réseau local on doit pouvoir le déterminer très vite, mais via Internet je doute de l'instantanéité de l'information.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 159
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    tout dépend de l'infrastructure, sur un réseau local on doit pouvoir le déterminer très vite, mais via Internet je doute de l'instantanéité de l'information.
    je suis sur un réseau local

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Active vérifie la connexion ?
    Ah, je ne savais pas, je le gérais au SendBuf qui provoquait une erreur, à ce moment, je le considérais comme "instable" donc je le déconnectais le client
    Je conservais quelques secondes les messages (chacun ayant une durée de réémission différente) dans la fil d'attente pour les renvoyer à la nouvelle connexion identifiée.

    Mais en général, le rythme de reception était de 125 ms, et 250ms en émission, cela suivait la cadence d'une machine, du coup mes SendBuf était fréquent
    le flux étant assez léger, environ 150o par message, juste des commandes de robot, majoritaire des word et autre champ de bit

    Gérer la perte de connexion et la réémission est un basique dans les systèmes critiques

    1 seconde, est-ce vraiment problématique ?
    Pour système indus comme un robot je pourrais comprendre une telle exigeance
    Si c'est pour un Chat ou autre, je ne vois pas bien le problème, tu as de la chance de n'avoir qu'une seconde de retard !

    Dans la plupart des applis indus avec lesquels j'ai travaillé, il y avait un système de Keep Alive, mes programmes étaient serveur, les applis indus des clients, les deux forcaient la déconnexion de l'autre en cas d'inactivité, cela provoquait bien sûr une reconnexion et activait au besoin même une sirène pour avertir d'une panne en cas de problème répété !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 159
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    1 seconde, est-ce vraiment problématique ?
    oui ça fausse le calcule de donné ,,ce n’ai pas un chat c un système de gestion base de donnée en réseau chaque client a sa base qui est partager avec les autre client même chose pour chaque client,, le client suive les instruction envoyé par le serveur et il saisie dans ça base et dans celle des autre clients,,, en temps normal quand le client ferme l'application correctement le serveur désactive la saisie dans la base de ce ce client .
    les autre clients sont avertie le calcule reste correct a la second prés
    mon problème et quand l'application client n'ai pas fermé correctement le serveur sais qu il y une déconnexion de la part d'un client mais le quel ?
    c'est la que que je perte ma seconde en testant tout les client Active

    Citation Envoyé par ShaiLeTroll Voir le message
    tu as de la chance de n'avoir qu'une seconde de retard !
    j’ai beaucoup plus qu’une seconde j’ai réduit cette marge en testant tout les client Active la je suis presque a une seconde

    j'ai une idée que je ne sais pas comment l'exploiter
    si au lieu de vérifier les client Active (qui son plusieurs et je perd du temps ) je vérifie les client non Active ??mais comment j'ai pas d'idée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] requête (sql) qui me permettrait de savoir quel clients à acheté tel produits
    Par jonatx7 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/12/2013, 20h02
  2. Savoir quel bouton vient d'être appuyé?
    Par _MattU_ dans le forum IHM
    Réponses: 2
    Dernier message: 18/06/2008, 09h27
  3. [Remoting] Comment savoir quel channel un client utilise pour se connecter?
    Par eldoctor.Sylvain dans le forum Framework .NET
    Réponses: 1
    Dernier message: 18/09/2006, 15h40
  4. Savoir de quel pays vient un utilisateur?
    Par sirbaldur dans le forum Langage
    Réponses: 3
    Dernier message: 18/07/2006, 11h12
  5. Statistiques : savoir de quel pays vient un internaute
    Par o_live dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 07/11/2005, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo